A rouge-like rpg, heavily inspired on the binding of isaac. Running on a FRDM-K64F Mbed board. C++.
Dependencies: mbed MotionSensor
Diff: main.cpp
- 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++; }