#pragma once #include "GameObject.h" #include "Spieler.h" class Spiel; #define PFEIL_DAMAGE 100 #define KUGEL_DAMAGE 100 class Geschoss : public GameObject { private: float speed; Richtung richtung; Spieler *besitzer; GeschossTyp typ; int tunnelBenutzt; int umgelenkt; int geschosseGetroffen; int schalter; int currentImage; double nextImage; bool intersectWithOwner; int id; ResourceRegistry *resources; public: Geschoss( ResourceRegistry *zResources, int id, float speed, GeschossTyp typ, Richtung r, int x, int y, Spieler *besitzer ); ~Geschoss(); void invertDirection(); void addUmlenkung( Spiel *zSpiel ); void addGeschossTreffer( Spiel *zSpiel ); void addTunnel( Spiel *zSpiel ); void addSchalter(); void setSpeed( float speed ); void setBesitzer( Spieler *besitzer ); void setTyp( GeschossTyp typ ); void setRichtung( Richtung r ); void tick( double zeit ); bool intersectsWith( GameObject *zObj ) override; GeschossTyp getTyp() const; Spieler *zBesitzer() const; Spieler *getBesitzer() const; Richtung getRichtung() const; }; // size: 150x150 class FeuerballTreffer : public GameObject { private: int id; Spieler *besitzer; int count; float timeLeft; Resource *animation; int currentImage; double nextImage; public: FeuerballTreffer( ResourceRegistry *zResources, int id, int x, int y, Spieler *besitzer, int maxZeit ); ~FeuerballTreffer(); void tick( double zeit ); bool isOver() const; bool makeDamage() const; Spieler *zVerursacher() const; };