World In the Balance

Dependencies:   mbed 4DGL-uLCD-SE PinDetect

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers WITB.h Source File

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