Lab 6 for ECE 2036,a lame version of Galiga that needs to have the bullet fixed, but focuses on the concept of polymorphism
Dependencies: mbed 4DGL-uLCD-SE PinDetect
Diff: graphics.h
- Revision:
- 0:660af2d0e42d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphics.h Wed Apr 27 05:31:20 2022 +0000 @@ -0,0 +1,138 @@ +#ifndef GRAPHICS_H +#define GRAPHICS_H + +#define POSITION 2 + +enum InputType {HIT,NO_HIT}; +enum StateType {DAMAGE,NO_DAMAGE}; + + + +//Base Class + +class ScreenObjects +{ +public: + int getHealth(); + void setHealth(int); + int * getPosition(); + void setPosition(int,int); + int * getPrevPosition(); + void setPrevPosition(int *); + InputType getInput(); + void setInput(InputType); + StateType getState(); + void setState(StateType); + virtual void draw(int,int)=0; + void erase(int,int); + virtual void update()=0; + int getDirection(); + void setDirection(int); + bool getDirPos(); + void setDirPos(bool); + + +private: + int health; + int Position[POSITION]; + int * previousPosition; + InputType input; + StateType state; + + int direction; + bool dirPos; + +}; + +class BobAlien:public ScreenObjects +{ +public: + BobAlien(); + void draw(int,int); + void update(); + void attack(); + +private: + bool bobBullet; +}; + + +class AliceAlien:public ScreenObjects +{ +public: + AliceAlien(); + void draw(int,int); + void update(); + void attack(); + +private: + bool aliceBullet; + +}; +//Gears for the Ship + enum GearShift {STOP,GEAR1,GEAR2,GEAR3}; + + + +class Ship:public ScreenObjects +{ + +public: + Ship(); + void draw(int,int); + void attackBullet(); + void update(); + void attackRocket(); + void setGear(GearShift); + GearShift getGear(); + virtual int move(double); + friend class Bullet; + int * getShipPosition(); + void setShipPos(int *); + + +private: + int numBullets; + int numRockets; + GearShift gear; + int * shipPos; + + + +}; + + + +class Bullet:public Ship +{ + +public: + Bullet(); + void draw(int,int); + void update(); + //void launch(); + bool getLoaded(); + + private: + bool load; + bool trueDraw; + +}; + + + +class Rocket:public ScreenObjects +{ + +public: + Rocket(); + void draw(int,int); + void update(); + void drawExplosion(); + void launch(); + + +}; + + +#endif//End of Graphics h \ No newline at end of file