Schuss.cpp 930 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "Schuss.h"
  2. // Inhalt der Schuss Klasse aus Schuss.h
  3. // Konstruktor
  4. Schuss::Schuss( Vec2< float > pos, Vec2< float > speed )
  5. {
  6. this->pos = pos;
  7. this->speed = speed;
  8. ref = 1;
  9. }
  10. // nicht constant
  11. bool Schuss::tick( double zeit )
  12. {
  13. pos += speed * (float)zeit;
  14. return 1;
  15. }
  16. void Schuss::render( Bild &zRObj )
  17. {
  18. zRObj.drawLinie( (Punkt)pos, (Punkt)( pos - speed / 10 ), 0xFFFFFFFF );
  19. }
  20. // constant
  21. bool Schuss::istInM2( const Model2D &mdl ) const
  22. {
  23. return mdl.istPunktInnen( pos ) || mdl.istPunktInnen( pos - speed / 10 );
  24. }
  25. void Schuss::save( Datei *zD ) const
  26. {
  27. zD->schreibe( (char*)&pos.x, 4 );
  28. zD->schreibe( (char*)&pos.y, 4 );
  29. zD->schreibe( (char*)&speed.x, 4 );
  30. zD->schreibe( (char*)&speed.y, 4 );
  31. }
  32. Vec2< float > Schuss::getPos() const
  33. {
  34. return pos;
  35. }
  36. // Reference Counting
  37. Schuss *Schuss::getThis()
  38. {
  39. ref++;
  40. return this;
  41. }
  42. Schuss *Schuss::release()
  43. {
  44. ref--;
  45. if( !ref )
  46. delete this;
  47. return 0;
  48. }