ELEC2645 (2018/19) / Mbed 2 deprecated el17mtu_

Dependencies:   mbed

Committer:
el17mtu
Date:
Wed May 08 18:33:28 2019 +0000
Revision:
7:9a30314fa41f
Parent:
6:f7484a2f32fd
working but no return after bar reaches the end of screen

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