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

Dependencies:   mbed MotionSensor

Committer:
el17sm
Date:
Thu May 02 21:30:49 2019 +0000
Revision:
28:98848e6a77a2
Parent:
27:a1b41626f57c
Child:
29:6b8411bb040a
Entrance and Exit done

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17sm 26:abbc19edc5c1 1 #ifndef ROOMENGINE_H
el17sm 26:abbc19edc5c1 2 #define ROOMENGINE_H
el17sm 28:98848e6a77a2 3 #include "N5110.h"
el17sm 26:abbc19edc5c1 4 #include "Player.h"
el17sm 26:abbc19edc5c1 5 #include "Bullets.h"
el17sm 26:abbc19edc5c1 6 #include "Room.h"
el17sm 26:abbc19edc5c1 7 #include "Gamepad.h"
el17sm 26:abbc19edc5c1 8 #include "sprites.h"
el17sm 28:98848e6a77a2 9 #include "Health.h"
el17sm 26:abbc19edc5c1 10
el17sm 27:a1b41626f57c 11 class RoomEngine
el17sm 26:abbc19edc5c1 12 {
el17sm 26:abbc19edc5c1 13 public:
el17sm 27:a1b41626f57c 14 RoomEngine();
el17sm 27:a1b41626f57c 15 ~RoomEngine();
el17sm 28:98848e6a77a2 16 void init(Player &current_player, Room &current_room);
el17sm 28:98848e6a77a2 17 void save_room(Room &current_room);
el17sm 28:98848e6a77a2 18 void entrance_scene(N5110 &lcd, Gamepad &gamepad);
el17sm 28:98848e6a77a2 19 void exit_scene(N5110 &lcd, Gamepad &gamepad);
el17sm 26:abbc19edc5c1 20 void read_input(Gamepad &gamepad);
el17sm 27:a1b41626f57c 21 void update();
el17sm 27:a1b41626f57c 22 void render(N5110 &lcd, Gamepad &gamepad);
el17sm 27:a1b41626f57c 23 bool check_player_death();
el17sm 28:98848e6a77a2 24 int check_player_room_position();
el17sm 26:abbc19edc5c1 25
el17sm 26:abbc19edc5c1 26 private:
el17sm 26:abbc19edc5c1 27 bool _L;
el17sm 26:abbc19edc5c1 28 bool _R;
el17sm 26:abbc19edc5c1 29 bool _A;
el17sm 26:abbc19edc5c1 30 bool _B;
el17sm 26:abbc19edc5c1 31 bool _X;
el17sm 26:abbc19edc5c1 32 bool _Y;
el17sm 26:abbc19edc5c1 33 Vector2D mapped_coord;
el17sm 26:abbc19edc5c1 34
el17sm 27:a1b41626f57c 35 Room *room;
el17sm 27:a1b41626f57c 36 Player *player;
el17sm 26:abbc19edc5c1 37
el17sm 28:98848e6a77a2 38 // Mutator
el17sm 28:98848e6a77a2 39 void set_input(bool L, bool R, bool A, bool B, bool X, bool Y, float mapped_x, float mapped_y);
el17sm 28:98848e6a77a2 40 void set_mapped_coord(float x, float y);
el17sm 28:98848e6a77a2 41
el17sm 26:abbc19edc5c1 42 // Functions
el17sm 28:98848e6a77a2 43 bool entity_collision(Entity &a, Entity &b);
el17sm 28:98848e6a77a2 44 float entity_move_check_x(Entity *a, Entity *array[], int no_of_enemies, int current_entity, bool valid_enemies[]);
el17sm 28:98848e6a77a2 45 float entity_move_check_y(Entity *a, Entity *array[], int no_of_enemies, int current_entity, bool valid_enemies[]);
el17sm 28:98848e6a77a2 46
el17sm 26:abbc19edc5c1 47 void check_damage();
el17sm 26:abbc19edc5c1 48 void check_damage_player();
el17sm 26:abbc19edc5c1 49 void check_damage_enemies();
el17sm 28:98848e6a77a2 50 void check_damage_enemies_by_bullets();
el17sm 28:98848e6a77a2 51 void check_damage_enemies_by_collisions();
el17sm 27:a1b41626f57c 52 void check_enemies_death();
el17sm 26:abbc19edc5c1 53 void move();
el17sm 26:abbc19edc5c1 54 void move_player();
el17sm 26:abbc19edc5c1 55 void move_enemies();
el17sm 26:abbc19edc5c1 56 void move_bullets();
el17sm 28:98848e6a77a2 57 void update_player_position(int side);
el17sm 28:98848e6a77a2 58
el17sm 27:a1b41626f57c 59 void minimap_detection(N5110 &lcd, Gamepad &gamepad);
el17sm 27:a1b41626f57c 60 void pause_detection(N5110 &lcd, Gamepad &gamepad);
el17sm 26:abbc19edc5c1 61
el17sm 27:a1b41626f57c 62 void draw(N5110 &lcd);
el17sm 26:abbc19edc5c1 63 void draw_player(N5110 &lcd);
el17sm 26:abbc19edc5c1 64 void draw_enemies(N5110 &lcd);
el17sm 26:abbc19edc5c1 65 void draw_bullets(N5110 &lcd);
el17sm 26:abbc19edc5c1 66 void draw_health(N5110 &lcd);
el17sm 26:abbc19edc5c1 67
el17sm 26:abbc19edc5c1 68 };
el17sm 26:abbc19edc5c1 69 #endif