ELEC2645 (2018/19) / Mbed 2 deprecated el17mtu_

Dependencies:   mbed

Committer:
el17mtu
Date:
Thu May 09 03:05:48 2019 +0000
Revision:
18:59befe1eaa56
Parent:
16:7b179005cd91
Child:
19:5e3ee84d9233
comments updated

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17mtu 0:15b74f0f8c7f 1 #include "ModeA.h"
el17mtu 0:15b74f0f8c7f 2
el17mtu 18:59befe1eaa56 3 ModeA::ModeA() //constructor
el17mtu 0:15b74f0f8c7f 4 {
el17mtu 0:15b74f0f8c7f 5
el17mtu 0:15b74f0f8c7f 6 }
el17mtu 0:15b74f0f8c7f 7
el17mtu 18:59befe1eaa56 8 ModeA::~ModeA() //destructor
el17mtu 0:15b74f0f8c7f 9 {
el17mtu 0:15b74f0f8c7f 10
el17mtu 0:15b74f0f8c7f 11 }
el17mtu 0:15b74f0f8c7f 12
el17mtu 18:59befe1eaa56 13 //initialise all values
el17mtu 14:558c85380f84 14 void ModeA::initialise(N5110 &lcd)
el17mtu 14:558c85380f84 15 {
el17mtu 18:59befe1eaa56 16 x_position = 12; //x coordinate of square
el17mtu 18:59befe1eaa56 17 y_position = 18; //y coordinate of square
el17mtu 18:59befe1eaa56 18 speed = 1; // speed of square
el17mtu 18:59befe1eaa56 19 gravity = 1; //gravitational force
el17mtu 14:558c85380f84 20
el17mtu 18:59befe1eaa56 21 screen_width = 70; // pixel at which bar begins
el17mtu 18:59befe1eaa56 22 bar_width = 10; // width of the bar
el17mtu 14:558c85380f84 23
el17mtu 18:59befe1eaa56 24 bar_speed = 2; // spped of the bar
el17mtu 18:59befe1eaa56 25 score = 0; // score
el17mtu 14:558c85380f84 26
el17mtu 9:571f92b0211b 27
el17mtu 14:558c85380f84 28 srand(time(NULL));
el17mtu 18:59befe1eaa56 29 size_top = rand() % 15; //15 random lengths of the top bar
el17mtu 14:558c85380f84 30 srand(time(NULL));
el17mtu 18:59befe1eaa56 31 size_bottom = rand() % 15; //15 random length of the bottom bar
el17mtu 14:558c85380f84 32
el17mtu 14:558c85380f84 33
el17mtu 14:558c85380f84 34 }
el17mtu 14:558c85380f84 35
el17mtu 18:59befe1eaa56 36 //game function
el17mtu 18:59befe1eaa56 37 void ModeA::Game(N5110 &lcd)
el17mtu 14:558c85380f84 38
el17mtu 0:15b74f0f8c7f 39 {
el17mtu 0:15b74f0f8c7f 40
el17mtu 14:558c85380f84 41 char buffer[14];
el17mtu 14:558c85380f84 42 sprintf(buffer,"%2d",score);
el17mtu 15:1463ebaf5c75 43 lcd.printString(buffer,70,0);
el17mtu 14:558c85380f84 44 lcd.drawRect(x_position, y_position,6,6,FILL_BLACK);
el17mtu 14:558c85380f84 45 lcd.refresh();
el17mtu 14:558c85380f84 46
el17mtu 14:558c85380f84 47
el17mtu 14:558c85380f84 48
el17mtu 14:558c85380f84 49 if ( pad.check_event(Gamepad::Y_PRESSED) == true) {
el17mtu 14:558c85380f84 50
el17mtu 14:558c85380f84 51 speed = speed - gravity*5;
el17mtu 14:558c85380f84 52
el17mtu 14:558c85380f84 53 }
el17mtu 14:558c85380f84 54
el17mtu 14:558c85380f84 55 if (y_position > 44) {
el17mtu 14:558c85380f84 56
el17mtu 14:558c85380f84 57 lcd.clear();
el17mtu 14:558c85380f84 58 lcd.printString("GAME OVER",6,2);
el17mtu 9:571f92b0211b 59 lcd.printString("Press BACK",6,4);
el17mtu 14:558c85380f84 60 pad.tone(2000.0,0.3);
el17mtu 14:558c85380f84 61 lcd.refresh();
el17mtu 9:571f92b0211b 62 bar_speed = 0;
el17mtu 14:558c85380f84 63 speed = 0;
el17mtu 9:571f92b0211b 64 gravity = 0;
el17mtu 9:571f92b0211b 65 y_position = 48;
el17mtu 14:558c85380f84 66 bar_width = 0;
el17mtu 14:558c85380f84 67 size_top = 0;
el17mtu 9:571f92b0211b 68 size_bottom = 0;
el17mtu 14:558c85380f84 69
el17mtu 14:558c85380f84 70 wait(0.5);
el17mtu 14:558c85380f84 71
el17mtu 14:558c85380f84 72 }
el17mtu 14:558c85380f84 73
el17mtu 14:558c85380f84 74
el17mtu 14:558c85380f84 75
el17mtu 14:558c85380f84 76 if (y_position < 0) {
el17mtu 14:558c85380f84 77 y_position = 0;
el17mtu 14:558c85380f84 78 speed = 0;
el17mtu 14:558c85380f84 79 }
el17mtu 14:558c85380f84 80
el17mtu 14:558c85380f84 81 speed = speed + gravity;
el17mtu 14:558c85380f84 82 y_position = y_position + speed;
el17mtu 14:558c85380f84 83 wait(0.1);
el17mtu 14:558c85380f84 84
el17mtu 14:558c85380f84 85
el17mtu 14:558c85380f84 86 lcd.drawRect(screen_width,0,bar_width,size_top,FILL_BLACK);
el17mtu 14:558c85380f84 87 lcd.drawRect(screen_width,48-size_bottom,bar_width,size_bottom,FILL_BLACK);
el17mtu 14:558c85380f84 88 lcd.refresh();
el17mtu 16:7b179005cd91 89
el17mtu 14:558c85380f84 90
el17mtu 14:558c85380f84 91 if ((screen_width == x_position) && (size_top < y_position)) {
el17mtu 14:558c85380f84 92 score = score + 1;
el17mtu 14:558c85380f84 93 lcd.clear();
el17mtu 14:558c85380f84 94 sprintf(buffer,"%2d",score);
el17mtu 16:7b179005cd91 95 lcd.printString("Reset",15,2);
el17mtu 16:7b179005cd91 96 lcd.refresh();
el17mtu 16:7b179005cd91 97 wait(1.0);
el17mtu 16:7b179005cd91 98
el17mtu 16:7b179005cd91 99
el17mtu 16:7b179005cd91 100
el17mtu 16:7b179005cd91 101 }
el17mtu 14:558c85380f84 102
el17mtu 14:558c85380f84 103
el17mtu 14:558c85380f84 104 if ( pad.check_event(Gamepad::X_PRESSED) == true) {
el17mtu 14:558c85380f84 105
el17mtu 14:558c85380f84 106 srand(time(NULL));
el17mtu 14:558c85380f84 107 size_top = rand() % 15;
el17mtu 14:558c85380f84 108 srand(time(NULL));
el17mtu 14:558c85380f84 109 size_bottom = rand() % 15;
el17mtu 14:558c85380f84 110
el17mtu 0:15b74f0f8c7f 111 }
el17mtu 14:558c85380f84 112
el17mtu 14:558c85380f84 113 if ((screen_width == x_position)&& (size_top > y_position)) {
el17mtu 14:558c85380f84 114
el17mtu 14:558c85380f84 115 lcd.clear();
el17mtu 14:558c85380f84 116 lcd.printString("GAME OVER",6,2);
el17mtu 14:558c85380f84 117 lcd.printString("Press BACK",6,4);
el17mtu 14:558c85380f84 118 pad.tone(2000.0,0.3);
el17mtu 14:558c85380f84 119 lcd.refresh();
el17mtu 14:558c85380f84 120 bar_speed = 0;
el17mtu 14:558c85380f84 121 speed = 0;
el17mtu 14:558c85380f84 122 gravity = 0;
el17mtu 14:558c85380f84 123 y_position = 48;
el17mtu 14:558c85380f84 124 bar_width = 0;
el17mtu 14:558c85380f84 125 size_top = 0;
el17mtu 14:558c85380f84 126 size_bottom = 0;
el17mtu 14:558c85380f84 127
el17mtu 14:558c85380f84 128
el17mtu 0:15b74f0f8c7f 129
el17mtu 14:558c85380f84 130 wait(0.5);
el17mtu 14:558c85380f84 131
el17mtu 14:558c85380f84 132 }
el17mtu 16:7b179005cd91 133
el17mtu 16:7b179005cd91 134
el17mtu 16:7b179005cd91 135 // if (score == 2) {
el17mtu 16:7b179005cd91 136 // lcd.clear();
el17mtu 16:7b179005cd91 137 // lcd.printString("Press Reset",6,2);
el17mtu 16:7b179005cd91 138 // }
el17mtu 14:558c85380f84 139
el17mtu 14:558c85380f84 140
el17mtu 14:558c85380f84 141 screen_width = screen_width - bar_speed;
el17mtu 14:558c85380f84 142 wait(0.1);
el17mtu 14:558c85380f84 143
el17mtu 14:558c85380f84 144
el17mtu 14:558c85380f84 145
el17mtu 14:558c85380f84 146 }
el17mtu 14:558c85380f84 147
el17mtu 14:558c85380f84 148
el17mtu 14:558c85380f84 149
el17mtu 14:558c85380f84 150
el17mtu 14:558c85380f84 151