ELEC2645 (2017/18) / Mbed 2 deprecated el17yw

Dependencies:   mbed

Committer:
RickYu
Date:
Tue Apr 17 20:53:43 2018 +0000
Revision:
6:46d0caedf217
Parent:
5:0a116644cce2
Child:
7:1964f649676e
fix the position of rect at y=50

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 2:421fb0670c5c 22 _rect.draw(lcd);
RickYu 3:1a134243e2f0 23 _boom.draw(lcd);
RickYu 6:46d0caedf217 24 _money.draw(lcd);
RickYu 2:421fb0670c5c 25
RickYu 2:421fb0670c5c 26
RickYu 2:421fb0670c5c 27 }
RickYu 2:421fb0670c5c 28
RickYu 2:421fb0670c5c 29 void engine::read_input(Gamepad &pad)
RickYu 2:421fb0670c5c 30 {
RickYu 2:421fb0670c5c 31 _d = pad.get_direction();
RickYu 2:421fb0670c5c 32 _mag = pad.get_mag();
RickYu 2:421fb0670c5c 33 }
RickYu 2:421fb0670c5c 34
RickYu 2:421fb0670c5c 35
RickYu 2:421fb0670c5c 36 void engine::update(Gamepad &pad)
RickYu 2:421fb0670c5c 37 {
RickYu 6:46d0caedf217 38
RickYu 2:421fb0670c5c 39 _rect.update(_d,_mag);
RickYu 4:55d904040636 40 _boom.update();
RickYu 6:46d0caedf217 41 _money.update();
RickYu 5:0a116644cce2 42
RickYu 6:46d0caedf217 43 check_boom_pos(pad);
RickYu 6:46d0caedf217 44 check_money_pos(pad);
RickYu 6:46d0caedf217 45 check_rect_pos(pad);
RickYu 5:0a116644cce2 46 check_boom_collision(pad);
RickYu 2:421fb0670c5c 47
RickYu 2:421fb0670c5c 48 }
RickYu 2:421fb0670c5c 49
RickYu 6:46d0caedf217 50 void engine::check_money_pos(Gamepad &pad)
RickYu 6:46d0caedf217 51 {
RickYu 6:46d0caedf217 52 Vector2D money_pos = _money.get_pos();
RickYu 6:46d0caedf217 53
RickYu 6:46d0caedf217 54 if (money_pos.y > 48) {
RickYu 6:46d0caedf217 55 money_pos.y = 0;
RickYu 6:46d0caedf217 56 money_pos.x = rand()%84;
RickYu 6:46d0caedf217 57 }
RickYu 6:46d0caedf217 58
RickYu 6:46d0caedf217 59 if (money_pos.x == 84) {
RickYu 6:46d0caedf217 60 money_pos.x = 81;
RickYu 6:46d0caedf217 61 }
RickYu 6:46d0caedf217 62
RickYu 6:46d0caedf217 63 if (money_pos.x <2){
RickYu 6:46d0caedf217 64 money_pos.x = 3;
RickYu 6:46d0caedf217 65 }
RickYu 6:46d0caedf217 66 _money.set_pos(money_pos);
RickYu 6:46d0caedf217 67
RickYu 6:46d0caedf217 68
RickYu 6:46d0caedf217 69 }
RickYu 6:46d0caedf217 70
RickYu 6:46d0caedf217 71 void engine::check_boom_pos(Gamepad &pad)
RickYu 5:0a116644cce2 72 {
RickYu 5:0a116644cce2 73 Vector2D boom_pos = _boom.get_pos();
RickYu 6:46d0caedf217 74 if (boom_pos.y > 48) {
RickYu 5:0a116644cce2 75 boom_pos.y = 0;
RickYu 6:46d0caedf217 76 boom_pos.x = rand()%84;
RickYu 5:0a116644cce2 77 }
RickYu 5:0a116644cce2 78
RickYu 5:0a116644cce2 79 if (boom_pos.x == 84) {
RickYu 5:0a116644cce2 80 boom_pos.x = 81;
RickYu 5:0a116644cce2 81 }
RickYu 5:0a116644cce2 82
RickYu 5:0a116644cce2 83 if (boom_pos.x <2){
RickYu 5:0a116644cce2 84 boom_pos.x = 3;
RickYu 6:46d0caedf217 85 }
RickYu 6:46d0caedf217 86 _boom.set_pos(boom_pos);
RickYu 6:46d0caedf217 87 }
RickYu 6:46d0caedf217 88
RickYu 6:46d0caedf217 89 void engine::check_rect_pos(Gamepad &pad)
RickYu 6:46d0caedf217 90 {
RickYu 6:46d0caedf217 91 Vector2D rect_pos = _rect.get_pos();
RickYu 6:46d0caedf217 92
RickYu 6:46d0caedf217 93 if (rect_pos.x < 1) {
RickYu 6:46d0caedf217 94 rect_pos.x = 1;
RickYu 6:46d0caedf217 95 }
RickYu 6:46d0caedf217 96 if (rect_pos.x > 74) {
RickYu 6:46d0caedf217 97 rect_pos.x = 74;
RickYu 6:46d0caedf217 98 }
RickYu 6:46d0caedf217 99 _rect.set_pos(rect_pos);
RickYu 6:46d0caedf217 100
RickYu 6:46d0caedf217 101
RickYu 5:0a116644cce2 102 }
RickYu 5:0a116644cce2 103 void engine::check_boom_collision(Gamepad &pad)
RickYu 5:0a116644cce2 104 {
RickYu 5:0a116644cce2 105 Vector2D boom_pos = _boom.get_pos();
RickYu 5:0a116644cce2 106 Vector2D rect_pos = _rect.get_pos();
RickYu 5:0a116644cce2 107
RickYu 6:46d0caedf217 108 if (boom_pos.y == rect_pos.y){
RickYu 6:46d0caedf217 109 if (
RickYu 6:46d0caedf217 110 (boom_pos.x+2 == rect_pos.x) or
RickYu 6:46d0caedf217 111 (boom_pos.x+1 == rect_pos.x)
RickYu 6:46d0caedf217 112 ){
RickYu 6:46d0caedf217 113 boom_pos.y = 0;
RickYu 6:46d0caedf217 114 pad.tone(750.0,0.1);
RickYu 6:46d0caedf217 115 }
RickYu 5:0a116644cce2 116 }
RickYu 6:46d0caedf217 117
RickYu 5:0a116644cce2 118 _boom.set_pos(boom_pos);
RickYu 5:0a116644cce2 119 _rect.set_pos(rect_pos);
RickYu 5:0a116644cce2 120 }
RickYu 5:0a116644cce2 121
RickYu 5:0a116644cce2 122