A rouge-like rpg, heavily inspired on the binding of isaac. Running on a FRDM-K64F Mbed board. C++.

Dependencies:   mbed MotionSensor

Revision:
23:5a8f75e93508
Parent:
22:7abf4581bc9b
Child:
24:26369d92a06a
--- a/main.cpp	Thu Apr 25 05:53:30 2019 +0000
+++ b/main.cpp	Thu Apr 25 23:15:44 2019 +0000
@@ -90,8 +90,8 @@
         valid_enemies[0] = true;
         enemies[1] = new Snake(20, 30);
         valid_enemies[1] = true;
-//        enemies[2] = new Snake(60, 30);
-//        valid_enemies[2] = true;
+        enemies[2] = new Snake(60, 30);
+        valid_enemies[2] = true;
 
         while(1) {
             int pos_x = player.get_pos_x();
@@ -100,7 +100,7 @@
             for (int i = 0; i < no_of_enemies; i++) {
                 if (valid_enemies[i]) {
                     if(entity_collision(player, *enemies[i])) {
-                        goto gameover;
+                        player.take_damage(enemies[i]->get_attack());
                     }
                 }
             };
@@ -123,11 +123,17 @@
                     }
                 }
             }
-
+            
+            // Player Death
+            if (player.death_check()) {
+                goto gameover;
+            }
+            
             // Player Movement
             Vector2D mapped_coord = gamepad.get_mapped_coord();
             player.move(mapped_coord.x, mapped_coord.y);
             player.buttons(gamepad.check_event(Gamepad::A_PRESSED), gamepad.check_event(Gamepad::B_PRESSED), gamepad.check_event(Gamepad::Y_PRESSED), gamepad.check_event(Gamepad::X_PRESSED));
+            player.update_hearts();
 
             // Enemy Death
             for (int i = 0; i < no_of_enemies; i++) {
@@ -205,8 +211,15 @@
                                               player.bullets_array[i]->get_frame());
                 }
             };
+            if (gamepad.check_event(Gamepad::L_PRESSED)) {
+                lcd.drawSpriteTransparent(0,
+                                          0,
+                                          player.get_hearts_height(),
+                                          player.get_hearts_width(),
+                                          player.get_hearts_sprite());
+            }
             lcd.refresh();
-            wait_ms(1000/20); // setting FPS
+            wait_ms(1000/40); // setting FPS
             counter++;
 
         }