ELEC2645 (2018/19) / Mbed 2 deprecated el17mtu_

Dependencies:   mbed

Committer:
el17mtu
Date:
Wed May 08 20:27:31 2019 +0000
Revision:
9:571f92b0211b
Parent:
8:d9b602e58126
Child:
10:1c3bdbf2fe9f
Child:
14:558c85380f84
game over when ball hits the ball

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17mtu 0:15b74f0f8c7f 1 #include "ModeA.h"
el17mtu 0:15b74f0f8c7f 2
el17mtu 0:15b74f0f8c7f 3 ModeA::ModeA()
el17mtu 0:15b74f0f8c7f 4 {
el17mtu 0:15b74f0f8c7f 5
el17mtu 0:15b74f0f8c7f 6 }
el17mtu 0:15b74f0f8c7f 7
el17mtu 0:15b74f0f8c7f 8 ModeA::~ModeA()
el17mtu 0:15b74f0f8c7f 9 {
el17mtu 0:15b74f0f8c7f 10
el17mtu 0:15b74f0f8c7f 11 }
el17mtu 0:15b74f0f8c7f 12
el17mtu 0:15b74f0f8c7f 13 void ModeA::screen(N5110 &lcd)
el17mtu 0:15b74f0f8c7f 14 {
el17mtu 0:15b74f0f8c7f 15
el17mtu 0:15b74f0f8c7f 16 lcd.clear();
el17mtu 0:15b74f0f8c7f 17 lcd.printString("GAME",0,0);
el17mtu 0:15b74f0f8c7f 18 lcd.printString("Back:Rules",0,2);
el17mtu 0:15b74f0f8c7f 19
el17mtu 0:15b74f0f8c7f 20 };
el17mtu 0:15b74f0f8c7f 21
el17mtu 0:15b74f0f8c7f 22 void ModeA::initialise(N5110 &lcd)
el17mtu 0:15b74f0f8c7f 23 {
el17mtu 9:571f92b0211b 24 x_position = 12;
el17mtu 0:15b74f0f8c7f 25 y_position = 18;
el17mtu 8:d9b602e58126 26 speed = 1;
el17mtu 0:15b74f0f8c7f 27 gravity = 1;
el17mtu 1:44f4594eacac 28
el17mtu 8:d9b602e58126 29 screen_width = 80;
el17mtu 1:44f4594eacac 30 bar_width = 10;
el17mtu 2:6ee8616695d1 31
el17mtu 4:a81f05c8806a 32 bar_speed = 2;
el17mtu 3:8e6950aeec8a 33
el17mtu 9:571f92b0211b 34
el17mtu 9:571f92b0211b 35 srand(time(NULL));
el17mtu 9:571f92b0211b 36 size_top = rand() % 15;
el17mtu 9:571f92b0211b 37 srand(time(NULL));
el17mtu 9:571f92b0211b 38 size_bottom = rand() % 15;
el17mtu 3:8e6950aeec8a 39
el17mtu 9:571f92b0211b 40
el17mtu 9:571f92b0211b 41 }
el17mtu 0:15b74f0f8c7f 42
el17mtu 9:571f92b0211b 43 void ModeA::Bird(N5110 &lcd)
el17mtu 0:15b74f0f8c7f 44
el17mtu 0:15b74f0f8c7f 45 {
el17mtu 0:15b74f0f8c7f 46
el17mtu 0:15b74f0f8c7f 47
el17mtu 0:15b74f0f8c7f 48 lcd.drawRect(x_position, y_position,6,6,FILL_BLACK);
el17mtu 3:8e6950aeec8a 49 //lcd.drawRect(screen_width,0,bar_width,size_top,FILL_BLACK);
el17mtu 3:8e6950aeec8a 50 //lcd.drawRect(screen_width,48-size_bottom,bar_width,size_bottom,FILL_BLACK);
el17mtu 0:15b74f0f8c7f 51 lcd.refresh();
el17mtu 0:15b74f0f8c7f 52
el17mtu 0:15b74f0f8c7f 53
el17mtu 0:15b74f0f8c7f 54
el17mtu 0:15b74f0f8c7f 55 if ( pad.check_event(Gamepad::Y_PRESSED) == true) {
el17mtu 8:d9b602e58126 56
el17mtu 0:15b74f0f8c7f 57 speed = speed - gravity*5;
el17mtu 0:15b74f0f8c7f 58
el17mtu 0:15b74f0f8c7f 59 }
el17mtu 0:15b74f0f8c7f 60
el17mtu 8:d9b602e58126 61 if (y_position > 44) {
el17mtu 6:f7484a2f32fd 62
el17mtu 6:f7484a2f32fd 63 lcd.clear();
el17mtu 6:f7484a2f32fd 64 lcd.printString("GAME OVER",6,2);
el17mtu 6:f7484a2f32fd 65 lcd.printString("Press BACK",6,4);
el17mtu 6:f7484a2f32fd 66 pad.tone(2000.0,0.3);
el17mtu 6:f7484a2f32fd 67 lcd.refresh();
el17mtu 6:f7484a2f32fd 68 bar_speed = 0;
el17mtu 6:f7484a2f32fd 69 speed = 0;
el17mtu 6:f7484a2f32fd 70 gravity = 0;
el17mtu 6:f7484a2f32fd 71 y_position = 48;
el17mtu 6:f7484a2f32fd 72 bar_width = 0;
el17mtu 6:f7484a2f32fd 73 size_top = 0;
el17mtu 6:f7484a2f32fd 74 size_bottom = 0;
el17mtu 6:f7484a2f32fd 75
el17mtu 6:f7484a2f32fd 76 wait(0.5);
el17mtu 6:f7484a2f32fd 77
el17mtu 0:15b74f0f8c7f 78 }
el17mtu 9:571f92b0211b 79
el17mtu 9:571f92b0211b 80
el17mtu 0:15b74f0f8c7f 81
el17mtu 0:15b74f0f8c7f 82 if (y_position < 0) {
el17mtu 0:15b74f0f8c7f 83 y_position = 0;
el17mtu 0:15b74f0f8c7f 84 speed = 0;
el17mtu 0:15b74f0f8c7f 85 }
el17mtu 0:15b74f0f8c7f 86
el17mtu 0:15b74f0f8c7f 87 speed = speed + gravity;
el17mtu 0:15b74f0f8c7f 88 y_position = y_position + speed;
el17mtu 0:15b74f0f8c7f 89 wait(0.1);
el17mtu 2:6ee8616695d1 90
el17mtu 3:8e6950aeec8a 91
el17mtu 3:8e6950aeec8a 92 lcd.drawRect(screen_width,0,bar_width,size_top,FILL_BLACK);
el17mtu 3:8e6950aeec8a 93 lcd.drawRect(screen_width,48-size_bottom,bar_width,size_bottom,FILL_BLACK);
el17mtu 3:8e6950aeec8a 94 lcd.refresh();
el17mtu 3:8e6950aeec8a 95
el17mtu 9:571f92b0211b 96 // if (screen_width > 50) {
el17mtu 9:571f92b0211b 97 // srand(time(NULL));
el17mtu 9:571f92b0211b 98 // size_top = rand() % 48;
el17mtu 9:571f92b0211b 99 // srand(time(NULL));
el17mtu 9:571f92b0211b 100 // size_bottom = rand() % 48;
el17mtu 3:8e6950aeec8a 101 // bar_width = 50;
el17mtu 3:8e6950aeec8a 102 // bar_speed = 0;
el17mtu 9:571f92b0211b 103 // }
el17mtu 2:6ee8616695d1 104
el17mtu 9:571f92b0211b 105 // if (screen_width == 5) {
el17mtu 9:571f92b0211b 106 // srand(time(NULL));
el17mtu 9:571f92b0211b 107 // size_top = rand() % 15;
el17mtu 9:571f92b0211b 108 // srand(time(NULL));
el17mtu 9:571f92b0211b 109 // size_bottom = rand() % 15;
el17mtu 9:571f92b0211b 110 // }
el17mtu 9:571f92b0211b 111 // if (screen_width == 11) {
el17mtu 9:571f92b0211b 112 // lcd.clear();
el17mtu 9:571f92b0211b 113 // lcd.printString("GAME OVER",6,2);
el17mtu 9:571f92b0211b 114 // lcd.printString("Press BACK",6,4);
el17mtu 9:571f92b0211b 115 // pad.tone(2000.0,0.3);
el17mtu 9:571f92b0211b 116 // lcd.refresh();
el17mtu 9:571f92b0211b 117 // bar_speed = 0;
el17mtu 9:571f92b0211b 118 // speed = 0;
el17mtu 9:571f92b0211b 119 // gravity = 0;
el17mtu 9:571f92b0211b 120 // y_position = 48;
el17mtu 9:571f92b0211b 121 // bar_width = 0;
el17mtu 9:571f92b0211b 122 // size_top = 0;
el17mtu 9:571f92b0211b 123 // size_bottom = 0;
el17mtu 9:571f92b0211b 124
el17mtu 9:571f92b0211b 125
el17mtu 9:571f92b0211b 126
el17mtu 9:571f92b0211b 127 // wait(0.5);
el17mtu 9:571f92b0211b 128 // }
el17mtu 4:a81f05c8806a 129
el17mtu 4:a81f05c8806a 130
el17mtu 9:571f92b0211b 131 if ( pad.check_event(Gamepad::X_PRESSED) == true) {
el17mtu 9:571f92b0211b 132
el17mtu 9:571f92b0211b 133 srand(time(NULL));
el17mtu 9:571f92b0211b 134 size_top = rand() % 15;
el17mtu 9:571f92b0211b 135 srand(time(NULL));
el17mtu 9:571f92b0211b 136 size_bottom = rand() % 15;
el17mtu 9:571f92b0211b 137
el17mtu 9:571f92b0211b 138 }
el17mtu 9:571f92b0211b 139
el17mtu 9:571f92b0211b 140 if ((screen_width == x_position)&& (size_top > y_position)) {
el17mtu 9:571f92b0211b 141 // size_top > y_position
el17mtu 9:571f92b0211b 142 // screen_width == x_position
el17mtu 9:571f92b0211b 143 lcd.clear();
el17mtu 9:571f92b0211b 144 lcd.printString("GAME OVER",6,2);
el17mtu 9:571f92b0211b 145 lcd.printString("Press BACK",6,4);
el17mtu 4:a81f05c8806a 146 pad.tone(2000.0,0.3);
el17mtu 9:571f92b0211b 147 lcd.refresh();
el17mtu 9:571f92b0211b 148 bar_speed = 0;
el17mtu 9:571f92b0211b 149 speed = 0;
el17mtu 9:571f92b0211b 150 gravity = 0;
el17mtu 9:571f92b0211b 151 y_position = 48;
el17mtu 9:571f92b0211b 152 bar_width = 0;
el17mtu 9:571f92b0211b 153 size_top = 0;
el17mtu 9:571f92b0211b 154 size_bottom = 0;
el17mtu 4:a81f05c8806a 155
el17mtu 9:571f92b0211b 156
el17mtu 9:571f92b0211b 157
el17mtu 9:571f92b0211b 158 wait(0.5);
el17mtu 9:571f92b0211b 159
el17mtu 9:571f92b0211b 160 }
el17mtu 9:571f92b0211b 161
el17mtu 9:571f92b0211b 162
el17mtu 0:15b74f0f8c7f 163
el17mtu 1:44f4594eacac 164 screen_width = screen_width - bar_speed;
el17mtu 3:8e6950aeec8a 165 wait(0.1);
el17mtu 4:a81f05c8806a 166
el17mtu 4:a81f05c8806a 167
el17mtu 0:15b74f0f8c7f 168
el17mtu 0:15b74f0f8c7f 169 }
el17mtu 0:15b74f0f8c7f 170
el17mtu 0:15b74f0f8c7f 171
el17mtu 0:15b74f0f8c7f 172
el17mtu 0:15b74f0f8c7f 173
el17mtu 0:15b74f0f8c7f 174
el17mtu 0:15b74f0f8c7f 175