Steven Mahasin / Mbed 2 deprecated DreamDungeon

Dependencies:   mbed MotionSensor

Revision:
16:ddb203a74dfc
Parent:
13:d04a6caba40d
Child:
21:be18f33da757
--- a/Entity/Headless/Headless.cpp	Wed Apr 24 06:28:14 2019 +0000
+++ b/Entity/Headless/Headless.cpp	Wed Apr 24 21:21:37 2019 +0000
@@ -5,7 +5,7 @@
 Headless::Headless(float pos_x, float pos_y){
     moving = true;
     face = 0;
-    hp = 3;
+    hp = 4;
     hitbox.width = 6;
     hitbox.height = 5;
     position.x = pos_x;
@@ -17,18 +17,13 @@
     frame.count = 0;
     frame.number = 0;
     frame.max = 4;
+    velocity = 0.5;
 }
 
 void Headless::move(float player_x, float player_y){
     std::complex<double> pos_diff(player_x - position.x, player_y - position.y); // defining difference in position as a vector
-    position.x += headless_velocity * pos_diff.real() / std::abs(pos_diff);
-    position.y += headless_velocity * pos_diff.imag() / std::abs(pos_diff);
-    
-//    if(!matrix_collision_test(position.x + mapped_x, position.y, 0)){
-//        position.x += mapped_x;
-//    }
-//    if(!matrix_collision_test(position.x, position.y - mapped_y, 0)){
-//        position.y -= mapped_y;
+    position.x += velocity * pos_diff.real() / std::abs(pos_diff);
+    position.y += velocity * pos_diff.imag() / std::abs(pos_diff);
 
     if (pos_diff.imag() / std::abs(pos_diff) < 0 && abs(pos_diff.imag() / std::abs(pos_diff)) > abs(pos_diff.real() / std::abs(pos_diff))){
         face = 2;
@@ -43,6 +38,9 @@
         face = 3;
     }
     
+    undo_move_x(matrix_collision_test(position.x, prev_pos.y, 0));
+    undo_move_y(matrix_collision_test(prev_pos.x, position.y, 0));
+    
     if (frame.number < frame.max){
         frame.count++;
     }