World In the Balance
Dependencies: mbed 4DGL-uLCD-SE PinDetect
main.cpp@0:eb6c4121cfd1, 2021-12-04 (annotated)
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
ckaminsky7 | 0:eb6c4121cfd1 | 1 | #include "mbed.h" |
ckaminsky7 | 0:eb6c4121cfd1 | 2 | #include "WITB.h" |
ckaminsky7 | 0:eb6c4121cfd1 | 3 | |
ckaminsky7 | 0:eb6c4121cfd1 | 4 | int main() { |
ckaminsky7 | 0:eb6c4121cfd1 | 5 | srand(time(0)); |
ckaminsky7 | 0:eb6c4121cfd1 | 6 | EarthSS A; |
ckaminsky7 | 0:eb6c4121cfd1 | 7 | A.setBaud(); |
ckaminsky7 | 0:eb6c4121cfd1 | 8 | A.draw(); |
ckaminsky7 | 0:eb6c4121cfd1 | 9 | GameTimer B; |
ckaminsky7 | 0:eb6c4121cfd1 | 10 | B.draw(); |
ckaminsky7 | 0:eb6c4121cfd1 | 11 | |
ckaminsky7 | 0:eb6c4121cfd1 | 12 | ScreenObject * ActiveAsteroids[] = {new ConcreteAsteroid1(), new ConcreteAsteroid2(), new ConcreteAsteroid3(), new ConcreteAsteroid4()}; |
ckaminsky7 | 0:eb6c4121cfd1 | 13 | for (int i = 0; i < 4; i++) |
ckaminsky7 | 0:eb6c4121cfd1 | 14 | { |
ckaminsky7 | 0:eb6c4121cfd1 | 15 | (*ActiveAsteroids[i]).setYPos(10); |
ckaminsky7 | 0:eb6c4121cfd1 | 16 | (*ActiveAsteroids[i]).setXPos(rand() % 110); |
ckaminsky7 | 0:eb6c4121cfd1 | 17 | (*ActiveAsteroids[i]).setdx(rand()%5 + 3); |
ckaminsky7 | 0:eb6c4121cfd1 | 18 | (*ActiveAsteroids[i]).setdy(rand()%10 - 5); |
ckaminsky7 | 0:eb6c4121cfd1 | 19 | (*ActiveAsteroids[i]).draw(); |
ckaminsky7 | 0:eb6c4121cfd1 | 20 | } |
ckaminsky7 | 0:eb6c4121cfd1 | 21 | |
ckaminsky7 | 0:eb6c4121cfd1 | 22 | double x = 0, y = 0, z = 0; |
ckaminsky7 | 0:eb6c4121cfd1 | 23 | |
ckaminsky7 | 0:eb6c4121cfd1 | 24 | MMA8452 acc(p28, p27, 40000); //instantiate an acc object! |
ckaminsky7 | 0:eb6c4121cfd1 | 25 | |
ckaminsky7 | 0:eb6c4121cfd1 | 26 | //set parameters -- use these and don't change |
ckaminsky7 | 0:eb6c4121cfd1 | 27 | acc.setBitDepth(MMA8452::BIT_DEPTH_12); |
ckaminsky7 | 0:eb6c4121cfd1 | 28 | acc.setDynamicRange(MMA8452::DYNAMIC_RANGE_4G); |
ckaminsky7 | 0:eb6c4121cfd1 | 29 | acc.setDataRate(MMA8452::RATE_100); |
ckaminsky7 | 0:eb6c4121cfd1 | 30 | |
ckaminsky7 | 0:eb6c4121cfd1 | 31 | |
ckaminsky7 | 0:eb6c4121cfd1 | 32 | |
ckaminsky7 | 0:eb6c4121cfd1 | 33 | while(1) |
ckaminsky7 | 0:eb6c4121cfd1 | 34 | { |
ckaminsky7 | 0:eb6c4121cfd1 | 35 | wait(0.1); |
ckaminsky7 | 0:eb6c4121cfd1 | 36 | clear(); |
ckaminsky7 | 0:eb6c4121cfd1 | 37 | acc.readXYZGravity(&x,&y,&z); |
ckaminsky7 | 0:eb6c4121cfd1 | 38 | int dx = floor(12 * x + 1); |
ckaminsky7 | 0:eb6c4121cfd1 | 39 | A.setdx(dx); |
ckaminsky7 | 0:eb6c4121cfd1 | 40 | A.update(); |
ckaminsky7 | 0:eb6c4121cfd1 | 41 | B.update(); |
ckaminsky7 | 0:eb6c4121cfd1 | 42 | |
ckaminsky7 | 0:eb6c4121cfd1 | 43 | for (int i = 0; i < 4; i++) |
ckaminsky7 | 0:eb6c4121cfd1 | 44 | { |
ckaminsky7 | 0:eb6c4121cfd1 | 45 | if ((*ActiveAsteroids[i]).getYPos() > 110) |
ckaminsky7 | 0:eb6c4121cfd1 | 46 | { |
ckaminsky7 | 0:eb6c4121cfd1 | 47 | (*ActiveAsteroids[i]).setYPos(10); |
ckaminsky7 | 0:eb6c4121cfd1 | 48 | (*ActiveAsteroids[i]).setXPos(rand() % 110); |
ckaminsky7 | 0:eb6c4121cfd1 | 49 | (*ActiveAsteroids[i]).setdx(rand()%5 + 3); |
ckaminsky7 | 0:eb6c4121cfd1 | 50 | (*ActiveAsteroids[i]).setdy(rand()%10 - 5); |
ckaminsky7 | 0:eb6c4121cfd1 | 51 | } |
ckaminsky7 | 0:eb6c4121cfd1 | 52 | (*ActiveAsteroids[i]).update(); |
ckaminsky7 | 0:eb6c4121cfd1 | 53 | } |
ckaminsky7 | 0:eb6c4121cfd1 | 54 | for (int i = 0; i < 4; i++) |
ckaminsky7 | 0:eb6c4121cfd1 | 55 | { |
ckaminsky7 | 0:eb6c4121cfd1 | 56 | if (overlap(A, (*ActiveAsteroids[i]))) |
ckaminsky7 | 0:eb6c4121cfd1 | 57 | { |
ckaminsky7 | 0:eb6c4121cfd1 | 58 | loseGame(A); |
ckaminsky7 | 0:eb6c4121cfd1 | 59 | break; |
ckaminsky7 | 0:eb6c4121cfd1 | 60 | } |
ckaminsky7 | 0:eb6c4121cfd1 | 61 | } |
ckaminsky7 | 0:eb6c4121cfd1 | 62 | } |
ckaminsky7 | 0:eb6c4121cfd1 | 63 | } |