World In the Balance

Dependencies:   mbed 4DGL-uLCD-SE PinDetect

Committer:
ckaminsky7
Date:
Sat Dec 04 02:19:22 2021 +0000
Revision:
0:eb6c4121cfd1
World In the Balance Lab6 2036 Cody Kaminsky

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ckaminsky7 0:eb6c4121cfd1 1 #include "mbed.h"
ckaminsky7 0:eb6c4121cfd1 2 #include "uLCD_4DGL.h"
ckaminsky7 0:eb6c4121cfd1 3 #include "MMA8452.h"
ckaminsky7 0:eb6c4121cfd1 4 #include "Speaker.h"
ckaminsky7 0:eb6c4121cfd1 5 #include "PinDetect.h"
ckaminsky7 0:eb6c4121cfd1 6 #include <cmath>
ckaminsky7 0:eb6c4121cfd1 7 #include <ctime>
ckaminsky7 0:eb6c4121cfd1 8
ckaminsky7 0:eb6c4121cfd1 9 #ifndef WITB_H
ckaminsky7 0:eb6c4121cfd1 10 #define WITB_H
ckaminsky7 0:eb6c4121cfd1 11
ckaminsky7 0:eb6c4121cfd1 12 void clear();
ckaminsky7 0:eb6c4121cfd1 13 void endGame();
ckaminsky7 0:eb6c4121cfd1 14
ckaminsky7 0:eb6c4121cfd1 15
ckaminsky7 0:eb6c4121cfd1 16 class ScreenObject{
ckaminsky7 0:eb6c4121cfd1 17 private:
ckaminsky7 0:eb6c4121cfd1 18 int xPos;
ckaminsky7 0:eb6c4121cfd1 19 int yPos;
ckaminsky7 0:eb6c4121cfd1 20
ckaminsky7 0:eb6c4121cfd1 21 public:
ckaminsky7 0:eb6c4121cfd1 22 ScreenObject()
ckaminsky7 0:eb6c4121cfd1 23 : xPos(0), yPos(0) {}
ckaminsky7 0:eb6c4121cfd1 24
ckaminsky7 0:eb6c4121cfd1 25 void setXPos(int x);
ckaminsky7 0:eb6c4121cfd1 26 void setYPos(int y);
ckaminsky7 0:eb6c4121cfd1 27 int getXPos();
ckaminsky7 0:eb6c4121cfd1 28 int getYPos();
ckaminsky7 0:eb6c4121cfd1 29 virtual void setdx(int x) = 0;
ckaminsky7 0:eb6c4121cfd1 30 virtual void setdy(int y) = 0;
ckaminsky7 0:eb6c4121cfd1 31 virtual int getdx() = 0;
ckaminsky7 0:eb6c4121cfd1 32 virtual int getdy() = 0;
ckaminsky7 0:eb6c4121cfd1 33
ckaminsky7 0:eb6c4121cfd1 34 void setBaud();
ckaminsky7 0:eb6c4121cfd1 35
ckaminsky7 0:eb6c4121cfd1 36 virtual void draw() = 0;
ckaminsky7 0:eb6c4121cfd1 37 virtual void update() = 0;
ckaminsky7 0:eb6c4121cfd1 38
ckaminsky7 0:eb6c4121cfd1 39 };
ckaminsky7 0:eb6c4121cfd1 40
ckaminsky7 0:eb6c4121cfd1 41 class GameTimer : public ScreenObject{
ckaminsky7 0:eb6c4121cfd1 42 private:
ckaminsky7 0:eb6c4121cfd1 43 int x;
ckaminsky7 0:eb6c4121cfd1 44 int y;
ckaminsky7 0:eb6c4121cfd1 45 int dx;
ckaminsky7 0:eb6c4121cfd1 46 int dy;
ckaminsky7 0:eb6c4121cfd1 47 time_t StartTime;
ckaminsky7 0:eb6c4121cfd1 48 time_t ElapsedTime;
ckaminsky7 0:eb6c4121cfd1 49
ckaminsky7 0:eb6c4121cfd1 50 public:
ckaminsky7 0:eb6c4121cfd1 51 GameTimer()
ckaminsky7 0:eb6c4121cfd1 52 : x(0), y(0) {}
ckaminsky7 0:eb6c4121cfd1 53
ckaminsky7 0:eb6c4121cfd1 54 void setX(int X){x = X;}
ckaminsky7 0:eb6c4121cfd1 55 void setY(int Y);
ckaminsky7 0:eb6c4121cfd1 56 int getX();
ckaminsky7 0:eb6c4121cfd1 57 int getY();
ckaminsky7 0:eb6c4121cfd1 58
ckaminsky7 0:eb6c4121cfd1 59 void starttimer();
ckaminsky7 0:eb6c4121cfd1 60
ckaminsky7 0:eb6c4121cfd1 61 virtual void setdx(int x);
ckaminsky7 0:eb6c4121cfd1 62 virtual void setdy(int y);
ckaminsky7 0:eb6c4121cfd1 63 virtual int getdx();
ckaminsky7 0:eb6c4121cfd1 64 virtual int getdy();
ckaminsky7 0:eb6c4121cfd1 65 virtual void draw();
ckaminsky7 0:eb6c4121cfd1 66 virtual void update();
ckaminsky7 0:eb6c4121cfd1 67 };
ckaminsky7 0:eb6c4121cfd1 68
ckaminsky7 0:eb6c4121cfd1 69 class AbstractAsteroid : public ScreenObject{
ckaminsky7 0:eb6c4121cfd1 70 private:
ckaminsky7 0:eb6c4121cfd1 71 int dx;
ckaminsky7 0:eb6c4121cfd1 72 int dy;
ckaminsky7 0:eb6c4121cfd1 73
ckaminsky7 0:eb6c4121cfd1 74 public:
ckaminsky7 0:eb6c4121cfd1 75 AbstractAsteroid()
ckaminsky7 0:eb6c4121cfd1 76 : dx(0), dy(0) {}
ckaminsky7 0:eb6c4121cfd1 77
ckaminsky7 0:eb6c4121cfd1 78 virtual void setdx(int x);
ckaminsky7 0:eb6c4121cfd1 79 virtual void setdy(int y);
ckaminsky7 0:eb6c4121cfd1 80 virtual int getdx();
ckaminsky7 0:eb6c4121cfd1 81 virtual int getdy();
ckaminsky7 0:eb6c4121cfd1 82 };
ckaminsky7 0:eb6c4121cfd1 83
ckaminsky7 0:eb6c4121cfd1 84 class EarthSS : public ScreenObject{
ckaminsky7 0:eb6c4121cfd1 85 private:
ckaminsky7 0:eb6c4121cfd1 86 int dx;
ckaminsky7 0:eb6c4121cfd1 87 int dy;
ckaminsky7 0:eb6c4121cfd1 88
ckaminsky7 0:eb6c4121cfd1 89 public:
ckaminsky7 0:eb6c4121cfd1 90 EarthSS()
ckaminsky7 0:eb6c4121cfd1 91 : dx(0), dy(0) {}
ckaminsky7 0:eb6c4121cfd1 92
ckaminsky7 0:eb6c4121cfd1 93 virtual void setdx(int x);
ckaminsky7 0:eb6c4121cfd1 94 virtual void setdy(int y);
ckaminsky7 0:eb6c4121cfd1 95 virtual int getdx();
ckaminsky7 0:eb6c4121cfd1 96 virtual int getdy();
ckaminsky7 0:eb6c4121cfd1 97
ckaminsky7 0:eb6c4121cfd1 98 virtual void draw();
ckaminsky7 0:eb6c4121cfd1 99 virtual void update();
ckaminsky7 0:eb6c4121cfd1 100 };
ckaminsky7 0:eb6c4121cfd1 101
ckaminsky7 0:eb6c4121cfd1 102 class ConcreteAsteroid1 : public AbstractAsteroid{
ckaminsky7 0:eb6c4121cfd1 103 private:
ckaminsky7 0:eb6c4121cfd1 104
ckaminsky7 0:eb6c4121cfd1 105 public:
ckaminsky7 0:eb6c4121cfd1 106 ConcreteAsteroid1() {}
ckaminsky7 0:eb6c4121cfd1 107 virtual void draw();
ckaminsky7 0:eb6c4121cfd1 108 virtual void update();
ckaminsky7 0:eb6c4121cfd1 109
ckaminsky7 0:eb6c4121cfd1 110 };
ckaminsky7 0:eb6c4121cfd1 111
ckaminsky7 0:eb6c4121cfd1 112 class ConcreteAsteroid2 : public AbstractAsteroid{
ckaminsky7 0:eb6c4121cfd1 113 private:
ckaminsky7 0:eb6c4121cfd1 114
ckaminsky7 0:eb6c4121cfd1 115 public:
ckaminsky7 0:eb6c4121cfd1 116 ConcreteAsteroid2() {}
ckaminsky7 0:eb6c4121cfd1 117 virtual void draw();
ckaminsky7 0:eb6c4121cfd1 118 virtual void update();
ckaminsky7 0:eb6c4121cfd1 119 };
ckaminsky7 0:eb6c4121cfd1 120
ckaminsky7 0:eb6c4121cfd1 121 class ConcreteAsteroid3 : public AbstractAsteroid{
ckaminsky7 0:eb6c4121cfd1 122 private:
ckaminsky7 0:eb6c4121cfd1 123
ckaminsky7 0:eb6c4121cfd1 124 public:
ckaminsky7 0:eb6c4121cfd1 125 ConcreteAsteroid3() {}
ckaminsky7 0:eb6c4121cfd1 126 virtual void draw();
ckaminsky7 0:eb6c4121cfd1 127 virtual void update();
ckaminsky7 0:eb6c4121cfd1 128 };
ckaminsky7 0:eb6c4121cfd1 129
ckaminsky7 0:eb6c4121cfd1 130 class ConcreteAsteroid4 : public AbstractAsteroid{
ckaminsky7 0:eb6c4121cfd1 131 private:
ckaminsky7 0:eb6c4121cfd1 132
ckaminsky7 0:eb6c4121cfd1 133 public:
ckaminsky7 0:eb6c4121cfd1 134 ConcreteAsteroid4() {}
ckaminsky7 0:eb6c4121cfd1 135 virtual void draw();
ckaminsky7 0:eb6c4121cfd1 136 virtual void update();
ckaminsky7 0:eb6c4121cfd1 137
ckaminsky7 0:eb6c4121cfd1 138 };
ckaminsky7 0:eb6c4121cfd1 139
ckaminsky7 0:eb6c4121cfd1 140 bool overlap(ScreenObject & objectA, ScreenObject & objectB);
ckaminsky7 0:eb6c4121cfd1 141
ckaminsky7 0:eb6c4121cfd1 142 void loseGame(ScreenObject & A);
ckaminsky7 0:eb6c4121cfd1 143 void winGame();
ckaminsky7 0:eb6c4121cfd1 144
ckaminsky7 0:eb6c4121cfd1 145 #endif