Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: Engine.cpp
- Revision:
- 4:e84724dcad49
- Child:
- 5:88886c1bd2c1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Engine.cpp Tue Mar 21 09:33:12 2017 +0000 @@ -0,0 +1,131 @@ +#include "Engine.h" + +Engine::Engine() +{ +} + +Engine::~Engine() +{ +} + +void Engine::init(int friendly_width,int friendly_height,int ship_size,int speed) +{ + _friendly_width = friendly_width; + _friendly_height = friendly_height; + _ship_size = ship_size; + _speed = speed; + _friendlyx = GAP; + + _friendly.init(_friendlyx,_friendly_height,_friendly_width); + _ship1.init(_ship_size,_speed); + _ship2.init(_ship_size,_speed); + _ship3.init(_ship_size,_speed); + _ship4.init(_ship_size,_speed); + _ship5.init(_ship_size,_speed); +} + +void Engine::read_input(Gamepad &pad) +{ + _d = pad.get_direction(); + _mag = pad.get_mag(); +} + +void Engine::draw(N5110 &lcd) +{ + lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); + _friendly.draw(lcd); +} + +void Engine::ship1_gen(N5110 &lcd) +{ + _ship1.draw(lcd); +} + +void Engine::ship2_gen(N5110 &lcd) +{ + _ship2.draw(lcd); +} + +void Engine::ship3_gen(N5110 &lcd) +{ + _ship3.draw(lcd); +} + +void Engine::ship4_gen(N5110 &lcd) +{ + _ship4.draw(lcd); +} + +void Engine::ship5_gen(N5110 &lcd) +{ + _ship5.draw(lcd); +} + +void Engine::update(Gamepad &pad) +{ + check_pass(pad); + check_death(pad); + + _friendly.update(_d,_mag); + _ship1.update(); + _ship2.update(); + _ship3.update(); + _ship4.update(); + _ship5.update(); + +} + +void Engine::check_pass(Gamepad &pad) +{ + Vector2D ship1_pos = _ship1.get_pos(); + + if (ship1_pos.x + _ship_size < 0) { + _ship1.init(_ship_size,_speed); + } + + Vector2D ship2_pos = _ship2.get_pos(); + + if (ship2_pos.x + _ship_size < 0) { + _ship2.init(_ship_size,_speed); + } + + Vector2D ship3_pos = _ship3.get_pos(); + + if (ship3_pos.x + _ship_size < 0) { + _ship3.init(_ship_size,_speed); + } + + Vector2D ship4_pos = _ship4.get_pos(); + + if (ship4_pos.x + _ship_size < 0) { + _ship4.init(_ship_size,_speed); + } + + Vector2D ship5_pos = _ship5.get_pos(); + + if (ship5_pos.x + _ship_size < 0) { + _ship5.init(_ship_size,_speed); + } +} + +void Engine::check_death(Gamepad &pad) +{ + Vector2D friendly_pos = _friendly.get_pos(); + Vector2D ship1_pos = _ship1.get_pos(); + + // overlap check + if ((ship1_pos.y == friendly_pos.y) && + (ship1_pos.x == friendly_pos.x) || + (ship2_pos.y == friendly_pos.y) && + (ship2_pos.x == friendly_pos.x) || + (ship3_pos.y == friendly_pos.y) && + (ship3_pos.x == friendly_pos.x) || + (ship4_pos.y == friendly_pos.y) && + (ship4_pos.x == friendly_pos.x) || + (ship5_pos.y == friendly_pos.y) && + (ship5_pos.x == friendly_pos.x)) { + + pad.tone(1000.0,0.1); + } + +} \ No newline at end of file