Musallam Bseiso / Engine
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