ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18jgb

Dependencies:   mbed

Committer:
el18jgb
Date:
Wed May 20 14:37:02 2020 +0000
Revision:
18:c600a6545e81
Parent:
17:18ae81180853
Child:
19:33c77517cb88
spikemode uses accelerometer ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el18jgb 9:2836fc3d9ede 1 #include "Spikes.h"
el18jgb 9:2836fc3d9ede 2
el18jgb 9:2836fc3d9ede 3 const int spike [5][5] =
el18jgb 9:2836fc3d9ede 4 {
el18jgb 9:2836fc3d9ede 5 {0,0,1,0,0},
el18jgb 9:2836fc3d9ede 6 {0,0,1,0,0},
el18jgb 9:2836fc3d9ede 7 {1,1,1,1,1},
el18jgb 9:2836fc3d9ede 8 {0,1,1,1,0},
el18jgb 9:2836fc3d9ede 9 {0,0,1,0,0},
el18jgb 9:2836fc3d9ede 10 };
el18jgb 9:2836fc3d9ede 11
el18jgb 18:c600a6545e81 12 const int spike2 [5][5] =
el18jgb 18:c600a6545e81 13 {
el18jgb 18:c600a6545e81 14 {0,0,1,0,0},
el18jgb 18:c600a6545e81 15 {0,0,1,1,0},
el18jgb 18:c600a6545e81 16 {1,1,1,1,1},
el18jgb 18:c600a6545e81 17 {0,0,1,1,0},
el18jgb 18:c600a6545e81 18 {0,0,1,0,0},
el18jgb 18:c600a6545e81 19 };
el18jgb 18:c600a6545e81 20
el18jgb 18:c600a6545e81 21 const int spike3 [5][5] =
el18jgb 18:c600a6545e81 22 {
el18jgb 18:c600a6545e81 23 {0,0,1,0,0},
el18jgb 18:c600a6545e81 24 {0,1,1,0,0},
el18jgb 18:c600a6545e81 25 {1,1,1,1,1},
el18jgb 18:c600a6545e81 26 {0,1,1,0,0},
el18jgb 18:c600a6545e81 27 {0,0,1,0,0},
el18jgb 18:c600a6545e81 28 };
el18jgb 18:c600a6545e81 29
el18jgb 9:2836fc3d9ede 30 Spikes::Spikes()
el18jgb 9:2836fc3d9ede 31 {
el18jgb 9:2836fc3d9ede 32
el18jgb 9:2836fc3d9ede 33 }
el18jgb 9:2836fc3d9ede 34
el18jgb 9:2836fc3d9ede 35 Spikes::~Spikes()
el18jgb 9:2836fc3d9ede 36 {
el18jgb 9:2836fc3d9ede 37
el18jgb 9:2836fc3d9ede 38 }
el18jgb 9:2836fc3d9ede 39
el18jgb 9:2836fc3d9ede 40 void Spikes::init(){
el18jgb 9:2836fc3d9ede 41 _x = 0;
el18jgb 9:2836fc3d9ede 42 _y = 0;
el18jgb 9:2836fc3d9ede 43 _height = 5;
el18jgb 9:2836fc3d9ede 44 _width = 5;
el18jgb 9:2836fc3d9ede 45
el18jgb 9:2836fc3d9ede 46 _speed = 3;
el18jgb 9:2836fc3d9ede 47 }
el18jgb 9:2836fc3d9ede 48
el18jgb 9:2836fc3d9ede 49
el18jgb 9:2836fc3d9ede 50 void Spikes::draw(N5110 &lcd)
el18jgb 9:2836fc3d9ede 51 {
el18jgb 9:2836fc3d9ede 52 // draw spike
el18jgb 9:2836fc3d9ede 53 lcd.drawSprite(_x,_y,5,5,(int*)spike);
el18jgb 9:2836fc3d9ede 54
el18jgb 9:2836fc3d9ede 55 }
el18jgb 18:c600a6545e81 56 void Spikes::draw2(N5110 &lcd)
el18jgb 18:c600a6545e81 57 {
el18jgb 18:c600a6545e81 58 // draw spike
el18jgb 18:c600a6545e81 59 lcd.drawSprite(_x,_y,5,5,(int*)spike2);
el18jgb 18:c600a6545e81 60
el18jgb 18:c600a6545e81 61 }
el18jgb 18:c600a6545e81 62 void Spikes::draw3(N5110 &lcd)
el18jgb 18:c600a6545e81 63 {
el18jgb 18:c600a6545e81 64 // draw spike
el18jgb 18:c600a6545e81 65 lcd.drawSprite(_x,_y,5,5,(int*)spike3);
el18jgb 18:c600a6545e81 66
el18jgb 18:c600a6545e81 67 }
el18jgb 9:2836fc3d9ede 68
el18jgb 9:2836fc3d9ede 69 void Spikes::position(int x)
el18jgb 9:2836fc3d9ede 70 {
el18jgb 9:2836fc3d9ede 71 if (x == 1){
el18jgb 9:2836fc3d9ede 72 _x = rand() % 37 + 1;
el18jgb 9:2836fc3d9ede 73 _y = 1;
el18jgb 9:2836fc3d9ede 74 }
el18jgb 9:2836fc3d9ede 75 if (x == 2){
el18jgb 10:6c574b8524df 76 _x = rand() % 37 + 42;
el18jgb 9:2836fc3d9ede 77 _y = 1;
el18jgb 9:2836fc3d9ede 78 }
el18jgb 17:18ae81180853 79 if (x == 3){
el18jgb 17:18ae81180853 80 _y = rand() % 19 + 1;
el18jgb 18:c600a6545e81 81 _x = 84;
el18jgb 17:18ae81180853 82 }
el18jgb 17:18ae81180853 83 if (x == 4){
el18jgb 17:18ae81180853 84 _y = rand() % 19 + 24;
el18jgb 17:18ae81180853 85 _x = 1;
el18jgb 17:18ae81180853 86 }
el18jgb 9:2836fc3d9ede 87 }
el18jgb 9:2836fc3d9ede 88
el18jgb 17:18ae81180853 89 void Spikes::updatey()
el18jgb 9:2836fc3d9ede 90 {
el18jgb 9:2836fc3d9ede 91 _y = _y + 3;
el18jgb 9:2836fc3d9ede 92 }
el18jgb 9:2836fc3d9ede 93
el18jgb 17:18ae81180853 94 void Spikes::updatex()
el18jgb 17:18ae81180853 95 {
el18jgb 17:18ae81180853 96 _x = _x + 3;
el18jgb 17:18ae81180853 97 }
el18jgb 17:18ae81180853 98
el18jgb 18:c600a6545e81 99 void Spikes::updatexn()
el18jgb 18:c600a6545e81 100 {
el18jgb 18:c600a6545e81 101 _x = _x - 3;
el18jgb 18:c600a6545e81 102 }
el18jgb 18:c600a6545e81 103
el18jgb 17:18ae81180853 104
el18jgb 9:2836fc3d9ede 105 Vector2D Spikes::get_pos() {
el18jgb 9:2836fc3d9ede 106 Vector2D p = {_x,_y};
el18jgb 9:2836fc3d9ede 107 return p;
el18jgb 10:6c574b8524df 108 }
el18jgb 10:6c574b8524df 109
el18jgb 10:6c574b8524df 110 void Spikes::hit(Gamepad &pad)
el18jgb 10:6c574b8524df 111 {
el18jgb 10:6c574b8524df 112 pad.led(1,1);
el18jgb 10:6c574b8524df 113 pad.led(4,1);
el18jgb 17:18ae81180853 114 wait(0.2);
el18jgb 17:18ae81180853 115 pad.leds_off();
el18jgb 10:6c574b8524df 116 }
el18jgb 10:6c574b8524df 117
el18jgb 10:6c574b8524df 118