ELEC2645 (2018/19) / Mbed 2 deprecated EL17MCD

Dependencies:   mbed

Revision:
13:feadff02d3f7
Parent:
12:9e6d5d0a0c82
Child:
15:fa5282fcd134
diff -r 9e6d5d0a0c82 -r feadff02d3f7 Tank/Tank.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tank/Tank.cpp	Wed Apr 17 14:03:14 2019 +0000
@@ -0,0 +1,105 @@
+/* Tank.cpp
+Produces tank on the left side of the
+lcd and dictates it's movement
+1.4.19
+*/
+#include "Tank.h"
+
+Tank::Tank()
+{
+    
+}
+
+Tank::~Tank()
+{
+
+}
+
+int Tank::get_position_x()
+{
+    return _position_x;
+}
+
+int Tank::get_position_y()
+{
+    return _position_y;
+}
+
+int Tank::get_hitbox(int i)
+{
+    return _hitbox[i];
+}
+
+int Tank::get_health()
+{
+    return _health;
+}
+
+void Tank::set_position(int x, int y)
+{
+    _position_x = x;
+    _position_y = y;
+}    
+
+void Tank::set_movement_limits(int left, int right)
+{
+    _left_lim = left; 
+    _right_lim = right;   
+}
+
+void Tank::set_health(int h)
+{
+    _health = h;   
+}
+
+void Tank::set_speed(int s)
+{
+    _speed = s;
+}
+
+void Tank::set_angle(float angle)
+{
+    _angle = angle;
+}
+
+void Tank::_limit_movement()
+{
+    if (_position_x == _left_lim - 1) {
+        _position_x  = _left_lim;
+    } else if (_position_x == _right_lim + 1) { 
+        _position_x = _right_lim;
+    }
+}
+
+void Tank::move_position(int d)
+{
+    int slowness = 9 - _speed;
+    int i = _move_counter % slowness;
+    if (d > 0) {
+        if (i == 0) {_position_x++;}
+    _move_counter++;
+    }  
+    else if (d < 0) {
+        if (i == 0) {_position_x--;}
+    _move_counter--;
+    }
+    _limit_movement(); 
+}
+
+void Tank::lose_health()
+{
+    _health--;
+/*    if (_health <= 0) right player wins
+{} */
+}
+
+void Tank::generate_hitbox()
+{
+    int i = 0;
+    for (int i0 = 0; i0 < 4; i0++) {    
+        for (int i1 = 1; i1 < 11; i1++) {
+            _hitbox[i] = (i0 + _position_y) * 84 + _position_x + i1;
+            i++;
+        }
+    }
+}
\ No newline at end of file