A rouge-like rpg, heavily inspired on the binding of isaac. Running on a FRDM-K64F Mbed board. C++.
Dependencies: mbed MotionSensor
RoomEngine/RoomEngine.h
- Committer:
- el17sm
- Date:
- 2019-05-05
- Revision:
- 30:ec915d24d3e9
- Parent:
- 29:6b8411bb040a
- Child:
- 31:ab24d028ddfd
File content as of revision 30:ec915d24d3e9:
#ifndef ROOMENGINE_H #define ROOMENGINE_H #include "N5110.h" #include "Gamepad.h" #include "Player.h" #include "Health.h" #include "Room.h" #include "sprites.h" class RoomEngine { public: RoomEngine(float global_contrast); ~RoomEngine(); void load(Player ¤t_player, Room *current_room); void entrance_scene(N5110 &lcd, Gamepad &gamepad); void exit_scene(N5110 &lcd, Gamepad &gamepad); void update_current_room(); void read_input(Gamepad &gamepad); void update(); void render(N5110 &lcd, Gamepad &gamepad); bool check_player_death(); int check_player_room_position(); // Accessor int get_room_x(); int get_room_y(); private: bool _L; bool _R; bool _A; bool _B; bool _X; bool _Y; Vector2D mapped_coord; int _room_x; int _room_y; float _global_contrast; Room *room; Player *player; // Mutator void set_input(bool L, bool R, bool A, bool B, bool X, bool Y, float mapped_x, float mapped_y); void set_mapped_coord(float x, float y); // Functions bool entity_collision(Entity &a, Entity &b); float entity_move_check_x(Entity *a, Entity *array[], int no_of_enemies, int current_entity, bool valid_enemies[]); float entity_move_check_y(Entity *a, Entity *array[], int no_of_enemies, int current_entity, bool valid_enemies[]); void check_damage(); void check_damage_player(); void check_damage_enemies(); void check_damage_enemies_by_bullets(); void check_damage_enemies_by_collisions(); void check_enemies_death(); void move(); void move_player(); void move_enemies(); void update_player_position(int side); void minimap_detection(N5110 &lcd, Gamepad &gamepad); void pause_detection(N5110 &lcd, Gamepad &gamepad); void draw(N5110 &lcd); void draw_enemies(N5110 &lcd); void draw_health(N5110 &lcd); }; #endif