World In the Balance
Dependencies: mbed 4DGL-uLCD-SE PinDetect
WITB.h
00001 #include "mbed.h" 00002 #include "uLCD_4DGL.h" 00003 #include "MMA8452.h" 00004 #include "Speaker.h" 00005 #include "PinDetect.h" 00006 #include <cmath> 00007 #include <ctime> 00008 00009 #ifndef WITB_H 00010 #define WITB_H 00011 00012 void clear(); 00013 void endGame(); 00014 00015 00016 class ScreenObject{ 00017 private: 00018 int xPos; 00019 int yPos; 00020 00021 public: 00022 ScreenObject() 00023 : xPos(0), yPos(0) {} 00024 00025 void setXPos(int x); 00026 void setYPos(int y); 00027 int getXPos(); 00028 int getYPos(); 00029 virtual void setdx(int x) = 0; 00030 virtual void setdy(int y) = 0; 00031 virtual int getdx() = 0; 00032 virtual int getdy() = 0; 00033 00034 void setBaud(); 00035 00036 virtual void draw() = 0; 00037 virtual void update() = 0; 00038 00039 }; 00040 00041 class GameTimer : public ScreenObject{ 00042 private: 00043 int x; 00044 int y; 00045 int dx; 00046 int dy; 00047 time_t StartTime; 00048 time_t ElapsedTime; 00049 00050 public: 00051 GameTimer() 00052 : x(0), y(0) {} 00053 00054 void setX(int X){x = X;} 00055 void setY(int Y); 00056 int getX(); 00057 int getY(); 00058 00059 void starttimer(); 00060 00061 virtual void setdx(int x); 00062 virtual void setdy(int y); 00063 virtual int getdx(); 00064 virtual int getdy(); 00065 virtual void draw(); 00066 virtual void update(); 00067 }; 00068 00069 class AbstractAsteroid : public ScreenObject{ 00070 private: 00071 int dx; 00072 int dy; 00073 00074 public: 00075 AbstractAsteroid() 00076 : dx(0), dy(0) {} 00077 00078 virtual void setdx(int x); 00079 virtual void setdy(int y); 00080 virtual int getdx(); 00081 virtual int getdy(); 00082 }; 00083 00084 class EarthSS : public ScreenObject{ 00085 private: 00086 int dx; 00087 int dy; 00088 00089 public: 00090 EarthSS() 00091 : dx(0), dy(0) {} 00092 00093 virtual void setdx(int x); 00094 virtual void setdy(int y); 00095 virtual int getdx(); 00096 virtual int getdy(); 00097 00098 virtual void draw(); 00099 virtual void update(); 00100 }; 00101 00102 class ConcreteAsteroid1 : public AbstractAsteroid{ 00103 private: 00104 00105 public: 00106 ConcreteAsteroid1() {} 00107 virtual void draw(); 00108 virtual void update(); 00109 00110 }; 00111 00112 class ConcreteAsteroid2 : public AbstractAsteroid{ 00113 private: 00114 00115 public: 00116 ConcreteAsteroid2() {} 00117 virtual void draw(); 00118 virtual void update(); 00119 }; 00120 00121 class ConcreteAsteroid3 : public AbstractAsteroid{ 00122 private: 00123 00124 public: 00125 ConcreteAsteroid3() {} 00126 virtual void draw(); 00127 virtual void update(); 00128 }; 00129 00130 class ConcreteAsteroid4 : public AbstractAsteroid{ 00131 private: 00132 00133 public: 00134 ConcreteAsteroid4() {} 00135 virtual void draw(); 00136 virtual void update(); 00137 00138 }; 00139 00140 bool overlap(ScreenObject & objectA, ScreenObject & objectB); 00141 00142 void loseGame(ScreenObject & A); 00143 void winGame(); 00144 00145 #endif
Generated on Thu Jul 28 2022 04:59:05 by 1.7.2