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

Dependencies:   mbed MotionSensor

Revision:
28:98848e6a77a2
Parent:
27:a1b41626f57c
Child:
29:6b8411bb040a
--- a/main.cpp	Mon Apr 29 10:39:09 2019 +0000
+++ b/main.cpp	Thu May 02 21:30:49 2019 +0000
@@ -20,6 +20,10 @@
 #include "Snake.h"
 #include "RoomEngine.h"
 
+#define INSIDE 4
+#define MAX_ROOMS_MAP_X 10
+#define MAX_ROOMS_MAP_Y 10
+
 // Objects
 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
 Gamepad gamepad;
@@ -32,23 +36,31 @@
 {
     // initialize
     lcd.init();
-    lcd.setContrast(0.45);
+    lcd.setContrast(0.5);
     gamepad.init();
-
+    Player player(39, 27);
+    
     while(1) { // gameloop
         RoomEngine room_engine;
-        while(1) {  // floorloop
-            Room room;
-            room.init();
-            room_engine.load_room(room);
-            while(!room_engine.check_player_death()) {  // roomloop
-                room_engine.read_input(gamepad);
-                room_engine.update();
-                room_engine.render(lcd, gamepad);
+        Room room(2);
+            // Rooms Generation
+        while(player.get_hp() > 0) {  // Room Loop 
+            while(1) {
+                room.load();
+                room_engine.init(player, room);
+                
+                room_engine.entrance_scene(lcd, gamepad);
+                while(room_engine.check_player_room_position() == INSIDE) {  // Room actions
+                    room_engine.read_input(gamepad);
+                    room_engine.update();
+                    room_engine.render(lcd, gamepad);
+                }
+                room_engine.exit_scene(lcd, gamepad);
+                room.unload();
             }
-            break;
         }
         lcd.clear();
+        lcd.setContrast(0.5);
         lcd.printString("Game Over", 0, 0);
         lcd.printString("Retry?", 0, 1);
         lcd.refresh();