ELEC2645 (2017/18) / Mbed 2 deprecated el17yw

Dependencies:   mbed

Committer:
RickYu
Date:
Mon Apr 16 09:57:57 2018 +0000
Revision:
5:0a116644cce2
Parent:
4:55d904040636
Child:
6:46d0caedf217
the boom can drop wiz random x-postion

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 2:421fb0670c5c 16 _speed = speed;
RickYu 2:421fb0670c5c 17
RickYu 2:421fb0670c5c 18
RickYu 2:421fb0670c5c 19
RickYu 2:421fb0670c5c 20
RickYu 2:421fb0670c5c 21 }
RickYu 2:421fb0670c5c 22 void engine::draw(N5110 &lcd)
RickYu 2:421fb0670c5c 23 {
RickYu 2:421fb0670c5c 24
RickYu 2:421fb0670c5c 25 _rect.draw(lcd);
RickYu 3:1a134243e2f0 26 _boom.draw(lcd);
RickYu 2:421fb0670c5c 27
RickYu 2:421fb0670c5c 28
RickYu 2:421fb0670c5c 29 }
RickYu 2:421fb0670c5c 30
RickYu 2:421fb0670c5c 31 void engine::read_input(Gamepad &pad)
RickYu 2:421fb0670c5c 32 {
RickYu 2:421fb0670c5c 33 _d = pad.get_direction();
RickYu 2:421fb0670c5c 34 _mag = pad.get_mag();
RickYu 2:421fb0670c5c 35 }
RickYu 2:421fb0670c5c 36
RickYu 2:421fb0670c5c 37
RickYu 2:421fb0670c5c 38 void engine::update(Gamepad &pad)
RickYu 2:421fb0670c5c 39 {
RickYu 2:421fb0670c5c 40 _rect.update(_d,_mag);
RickYu 4:55d904040636 41 _boom.update();
RickYu 5:0a116644cce2 42
RickYu 5:0a116644cce2 43 check_boom_collision(pad);
RickYu 5:0a116644cce2 44 check_wall_collision(pad);
RickYu 2:421fb0670c5c 45
RickYu 2:421fb0670c5c 46 }
RickYu 2:421fb0670c5c 47
RickYu 5:0a116644cce2 48 void engine::check_wall_collision(Gamepad &pad)
RickYu 5:0a116644cce2 49 {
RickYu 5:0a116644cce2 50 Vector2D boom_pos = _boom.get_pos();
RickYu 5:0a116644cce2 51 Vector2D rect_pos = _rect.get_pos();
RickYu 5:0a116644cce2 52
RickYu 5:0a116644cce2 53 if (boom_pos.y > 48) {
RickYu 5:0a116644cce2 54
RickYu 5:0a116644cce2 55 boom_pos.y = 0;
RickYu 5:0a116644cce2 56 boom_pos.x = rand()%84;
RickYu 5:0a116644cce2 57
RickYu 5:0a116644cce2 58 }
RickYu 5:0a116644cce2 59
RickYu 5:0a116644cce2 60 if (boom_pos.x == 84) {
RickYu 5:0a116644cce2 61 boom_pos.x = 81;
RickYu 5:0a116644cce2 62 }
RickYu 5:0a116644cce2 63
RickYu 5:0a116644cce2 64 if (boom_pos.x <2){
RickYu 5:0a116644cce2 65 boom_pos.x = 3;
RickYu 5:0a116644cce2 66 }
RickYu 5:0a116644cce2 67 _boom.set_pos(boom_pos);
RickYu 5:0a116644cce2 68 _rect.set_pos(rect_pos);
RickYu 5:0a116644cce2 69
RickYu 5:0a116644cce2 70
RickYu 5:0a116644cce2 71 }
RickYu 5:0a116644cce2 72 void engine::check_boom_collision(Gamepad &pad)
RickYu 5:0a116644cce2 73 {
RickYu 5:0a116644cce2 74 Vector2D boom_pos = _boom.get_pos();
RickYu 5:0a116644cce2 75 Vector2D rect_pos = _rect.get_pos();
RickYu 5:0a116644cce2 76
RickYu 5:0a116644cce2 77 if (
RickYu 5:0a116644cce2 78 (boom_pos.y+3 == rect_pos.x+3)&&
RickYu 5:0a116644cce2 79 (boom_pos.y+3 == rect_pos.x+4)&&
RickYu 5:0a116644cce2 80 (boom_pos.y+3 == rect_pos.x+5)&&
RickYu 5:0a116644cce2 81 (boom_pos.y+3 == rect_pos.x+6)
RickYu 5:0a116644cce2 82 )
RickYu 5:0a116644cce2 83 {
RickYu 5:0a116644cce2 84 boom_pos.y = 0;
RickYu 5:0a116644cce2 85 pad.tone(750.0,0.1);
RickYu 5:0a116644cce2 86 }
RickYu 5:0a116644cce2 87 _boom.set_pos(boom_pos);
RickYu 5:0a116644cce2 88 _rect.set_pos(rect_pos);
RickYu 5:0a116644cce2 89
RickYu 5:0a116644cce2 90
RickYu 5:0a116644cce2 91
RickYu 5:0a116644cce2 92 }
RickYu 5:0a116644cce2 93
RickYu 5:0a116644cce2 94