ELEC2645 (2017/18) / Mbed 2 deprecated el17yw

Dependencies:   mbed

Committer:
RickYu
Date:
Tue Apr 17 23:03:03 2018 +0000
Revision:
7:1964f649676e
Parent:
6:46d0caedf217
Child:
8:4a5e96ed2347
written the comment;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RickYu 2:421fb0670c5c 1 #include "engine.h"
RickYu 2:421fb0670c5c 2
RickYu 2:421fb0670c5c 3 engine::engine()
RickYu 2:421fb0670c5c 4 {
RickYu 2:421fb0670c5c 5
RickYu 2:421fb0670c5c 6 }
RickYu 2:421fb0670c5c 7
RickYu 2:421fb0670c5c 8 engine::~engine()
RickYu 2:421fb0670c5c 9 {
RickYu 2:421fb0670c5c 10
RickYu 2:421fb0670c5c 11 }
RickYu 2:421fb0670c5c 12
RickYu 5:0a116644cce2 13 void engine::init(int speed)
RickYu 2:421fb0670c5c 14 {
RickYu 2:421fb0670c5c 15 // initialise the game parameters
RickYu 6:46d0caedf217 16 //_speed = speed;
RickYu 2:421fb0670c5c 17
RickYu 2:421fb0670c5c 18 }
RickYu 2:421fb0670c5c 19 void engine::draw(N5110 &lcd)
RickYu 2:421fb0670c5c 20 {
RickYu 2:421fb0670c5c 21
RickYu 7:1964f649676e 22 //draw and re-draw rectangle, boom and money on the screen
RickYu 7:1964f649676e 23 _rect.draw(lcd);
RickYu 3:1a134243e2f0 24 _boom.draw(lcd);
RickYu 6:46d0caedf217 25 _money.draw(lcd);
RickYu 2:421fb0670c5c 26
RickYu 2:421fb0670c5c 27
RickYu 2:421fb0670c5c 28 }
RickYu 2:421fb0670c5c 29
RickYu 2:421fb0670c5c 30 void engine::read_input(Gamepad &pad)
RickYu 2:421fb0670c5c 31 {
RickYu 2:421fb0670c5c 32 _d = pad.get_direction();
RickYu 2:421fb0670c5c 33 _mag = pad.get_mag();
RickYu 2:421fb0670c5c 34 }
RickYu 2:421fb0670c5c 35
RickYu 2:421fb0670c5c 36
RickYu 2:421fb0670c5c 37 void engine::update(Gamepad &pad)
RickYu 2:421fb0670c5c 38 {
RickYu 6:46d0caedf217 39
RickYu 7:1964f649676e 40 _rect.update(_d,_mag); //get the position of rect when jopystick moves
RickYu 7:1964f649676e 41
RickYu 7:1964f649676e 42 //boom and money will keep moving with initial settings
RickYu 7:1964f649676e 43 _boom.update();
RickYu 6:46d0caedf217 44 _money.update();
RickYu 5:0a116644cce2 45
RickYu 6:46d0caedf217 46 check_boom_pos(pad);
RickYu 6:46d0caedf217 47 check_money_pos(pad);
RickYu 6:46d0caedf217 48 check_rect_pos(pad);
RickYu 5:0a116644cce2 49 check_boom_collision(pad);
RickYu 2:421fb0670c5c 50
RickYu 2:421fb0670c5c 51 }
RickYu 2:421fb0670c5c 52
RickYu 6:46d0caedf217 53 void engine::check_money_pos(Gamepad &pad)
RickYu 6:46d0caedf217 54 {
RickYu 6:46d0caedf217 55 Vector2D money_pos = _money.get_pos();
RickYu 6:46d0caedf217 56
RickYu 6:46d0caedf217 57 if (money_pos.y > 48) {
RickYu 6:46d0caedf217 58 money_pos.y = 0;
RickYu 7:1964f649676e 59 money_pos.x = rand()%84; //the money will back to top with random x position
RickYu 6:46d0caedf217 60 }
RickYu 6:46d0caedf217 61
RickYu 7:1964f649676e 62 //avoid money out of the screen
RickYu 6:46d0caedf217 63 if (money_pos.x == 84) {
RickYu 6:46d0caedf217 64 money_pos.x = 81;
RickYu 6:46d0caedf217 65 }
RickYu 6:46d0caedf217 66
RickYu 6:46d0caedf217 67 if (money_pos.x <2){
RickYu 6:46d0caedf217 68 money_pos.x = 3;
RickYu 6:46d0caedf217 69 }
RickYu 6:46d0caedf217 70 _money.set_pos(money_pos);
RickYu 6:46d0caedf217 71
RickYu 6:46d0caedf217 72
RickYu 6:46d0caedf217 73 }
RickYu 6:46d0caedf217 74
RickYu 6:46d0caedf217 75 void engine::check_boom_pos(Gamepad &pad)
RickYu 5:0a116644cce2 76 {
RickYu 5:0a116644cce2 77 Vector2D boom_pos = _boom.get_pos();
RickYu 6:46d0caedf217 78 if (boom_pos.y > 48) {
RickYu 5:0a116644cce2 79 boom_pos.y = 0;
RickYu 7:1964f649676e 80 boom_pos.x = rand()%84; //boom will back to top with random x position
RickYu 5:0a116644cce2 81 }
RickYu 7:1964f649676e 82
RickYu 7:1964f649676e 83 //avoid boom go outside of the screen
RickYu 5:0a116644cce2 84 if (boom_pos.x == 84) {
RickYu 5:0a116644cce2 85 boom_pos.x = 81;
RickYu 5:0a116644cce2 86 }
RickYu 5:0a116644cce2 87
RickYu 5:0a116644cce2 88 if (boom_pos.x <2){
RickYu 5:0a116644cce2 89 boom_pos.x = 3;
RickYu 6:46d0caedf217 90 }
RickYu 6:46d0caedf217 91 _boom.set_pos(boom_pos);
RickYu 6:46d0caedf217 92 }
RickYu 6:46d0caedf217 93
RickYu 6:46d0caedf217 94 void engine::check_rect_pos(Gamepad &pad)
RickYu 6:46d0caedf217 95 {
RickYu 6:46d0caedf217 96 Vector2D rect_pos = _rect.get_pos();
RickYu 7:1964f649676e 97
RickYu 7:1964f649676e 98 //keep the rect moving inside the screen
RickYu 6:46d0caedf217 99 if (rect_pos.x < 1) {
RickYu 6:46d0caedf217 100 rect_pos.x = 1;
RickYu 6:46d0caedf217 101 }
RickYu 6:46d0caedf217 102 if (rect_pos.x > 74) {
RickYu 6:46d0caedf217 103 rect_pos.x = 74;
RickYu 6:46d0caedf217 104 }
RickYu 6:46d0caedf217 105 _rect.set_pos(rect_pos);
RickYu 6:46d0caedf217 106
RickYu 6:46d0caedf217 107
RickYu 5:0a116644cce2 108 }
RickYu 5:0a116644cce2 109 void engine::check_boom_collision(Gamepad &pad)
RickYu 5:0a116644cce2 110 {
RickYu 5:0a116644cce2 111 Vector2D boom_pos = _boom.get_pos();
RickYu 5:0a116644cce2 112 Vector2D rect_pos = _rect.get_pos();
RickYu 7:1964f649676e 113 Vector2D money_pos = _money.get_pos();
RickYu 5:0a116644cce2 114
RickYu 7:1964f649676e 115 if ((money_pos.y == rect_pos.y)&&(money_pos.x == rect_pos.x ))
RickYu 7:1964f649676e 116
RickYu 7:1964f649676e 117 {
RickYu 7:1964f649676e 118 money_pos.y = 0;
RickYu 6:46d0caedf217 119 pad.tone(750.0,0.1);
RickYu 6:46d0caedf217 120 }
RickYu 7:1964f649676e 121
RickYu 7:1964f649676e 122
RickYu 6:46d0caedf217 123
RickYu 7:1964f649676e 124 _money.set_pos(money_pos);
RickYu 5:0a116644cce2 125 _boom.set_pos(boom_pos);
RickYu 5:0a116644cce2 126 _rect.set_pos(rect_pos);
RickYu 5:0a116644cce2 127 }
RickYu 5:0a116644cce2 128
RickYu 5:0a116644cce2 129