
A rouge-like rpg, heavily inspired on the binding of isaac. Running on a FRDM-K64F Mbed board. C++.
Dependencies: mbed MotionSensor
Room/Room.h@27:a1b41626f57c, 2019-04-29 (annotated)
- Committer:
- el17sm
- Date:
- Mon Apr 29 10:39:09 2019 +0000
- Revision:
- 27:a1b41626f57c
- Parent:
- 26:abbc19edc5c1
- Child:
- 28:98848e6a77a2
Functional Room; Great Success;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el17sm | 25:112cbcb0b4a7 | 1 | #ifndef ROOM_H |
el17sm | 25:112cbcb0b4a7 | 2 | #define ROOM_H |
el17sm | 27:a1b41626f57c | 3 | #include "sprites.h" |
el17sm | 26:abbc19edc5c1 | 4 | #include "Entity.h" |
el17sm | 25:112cbcb0b4a7 | 5 | #include "Player.h" |
el17sm | 25:112cbcb0b4a7 | 6 | #include "Headless.h" |
el17sm | 25:112cbcb0b4a7 | 7 | #include "Snake.h" |
el17sm | 26:abbc19edc5c1 | 8 | #include "N5110.h" |
el17sm | 25:112cbcb0b4a7 | 9 | |
el17sm | 26:abbc19edc5c1 | 10 | #define MAX_ENEMIES 10 |
el17sm | 26:abbc19edc5c1 | 11 | |
el17sm | 26:abbc19edc5c1 | 12 | class Room // contains the type of room, number of enemies inside it, the doorways existing in the room, functions to spawn enemies |
el17sm | 25:112cbcb0b4a7 | 13 | { |
el17sm | 25:112cbcb0b4a7 | 14 | private: |
el17sm | 27:a1b41626f57c | 15 | bool _doorways[4]; |
el17sm | 27:a1b41626f57c | 16 | int _type; |
el17sm | 27:a1b41626f57c | 17 | int _current_map[3][48][84]; |
el17sm | 27:a1b41626f57c | 18 | |
el17sm | 27:a1b41626f57c | 19 | // Functions |
el17sm | 27:a1b41626f57c | 20 | void overlap(int x, int y, int width, int height, int * object, int * map); |
el17sm | 25:112cbcb0b4a7 | 21 | |
el17sm | 25:112cbcb0b4a7 | 22 | public: |
el17sm | 26:abbc19edc5c1 | 23 | // Constructors |
el17sm | 26:abbc19edc5c1 | 24 | Room(); |
el17sm | 27:a1b41626f57c | 25 | // Deconstructors |
el17sm | 27:a1b41626f57c | 26 | ~Room(); |
el17sm | 27:a1b41626f57c | 27 | |
el17sm | 27:a1b41626f57c | 28 | // Accessors |
el17sm | 27:a1b41626f57c | 29 | int * get_current_map_2d(); |
el17sm | 25:112cbcb0b4a7 | 30 | |
el17sm | 26:abbc19edc5c1 | 31 | // Functions |
el17sm | 26:abbc19edc5c1 | 32 | void init(); |
el17sm | 27:a1b41626f57c | 33 | void draw_room(N5110 &lcd); |
el17sm | 27:a1b41626f57c | 34 | void draw_room_overlay(N5110 &lcd); |
el17sm | 26:abbc19edc5c1 | 35 | |
el17sm | 26:abbc19edc5c1 | 36 | // Variables |
el17sm | 26:abbc19edc5c1 | 37 | Entity *enemies[MAX_ENEMIES]; |
el17sm | 26:abbc19edc5c1 | 38 | bool valid_enemies[MAX_ENEMIES]; |
el17sm | 25:112cbcb0b4a7 | 39 | }; |
el17sm | 25:112cbcb0b4a7 | 40 | |
el17sm | 27:a1b41626f57c | 41 | const int wall_x[2][11][3] = { // [E/W][Size_Y][Size_X] |
el17sm | 27:a1b41626f57c | 42 | { // E |
el17sm | 27:a1b41626f57c | 43 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 44 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 45 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 46 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 47 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 48 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 49 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 50 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 51 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 52 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 53 | {1,0,0}, |
el17sm | 27:a1b41626f57c | 54 | }, |
el17sm | 27:a1b41626f57c | 55 | { // W |
el17sm | 27:a1b41626f57c | 56 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 57 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 58 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 59 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 60 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 61 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 62 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 63 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 64 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 65 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 66 | {0,0,1}, |
el17sm | 27:a1b41626f57c | 67 | } |
el17sm | 27:a1b41626f57c | 68 | }; |
el17sm | 27:a1b41626f57c | 69 | |
el17sm | 27:a1b41626f57c | 70 | const int wall_n[2][10][12] = { // [2d/3d][Size_Y][Size_X] |
el17sm | 27:a1b41626f57c | 71 | { // N |
el17sm | 27:a1b41626f57c | 72 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 73 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 74 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 75 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 76 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 77 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 78 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 79 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 80 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 81 | {1,1,1,1,1,1,1,1,1,1,1,1,}, |
el17sm | 27:a1b41626f57c | 82 | }, |
el17sm | 27:a1b41626f57c | 83 | { |
el17sm | 27:a1b41626f57c | 84 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 85 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 86 | {1,1,1,1,1,1,1,1,1,1,1,1,}, |
el17sm | 27:a1b41626f57c | 87 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 88 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 89 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 90 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 91 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 92 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 93 | {1,1,1,1,1,1,1,1,1,1,1,1,}, |
el17sm | 27:a1b41626f57c | 94 | }, |
el17sm | 27:a1b41626f57c | 95 | }; |
el17sm | 27:a1b41626f57c | 96 | |
el17sm | 27:a1b41626f57c | 97 | const int wall_s[2][3][12] = { // [2d/3d][Size_Y][Size_X] |
el17sm | 27:a1b41626f57c | 98 | { |
el17sm | 27:a1b41626f57c | 99 | {1,1,1,1,1,1,1,1,1,1,1,1,}, |
el17sm | 27:a1b41626f57c | 100 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 101 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 102 | }, |
el17sm | 27:a1b41626f57c | 103 | { |
el17sm | 27:a1b41626f57c | 104 | {1,1,1,1,1,1,1,1,1,1,1,1,}, |
el17sm | 27:a1b41626f57c | 105 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 106 | {0,0,0,0,0,0,0,0,0,0,0,0,}, |
el17sm | 27:a1b41626f57c | 107 | }, |
el17sm | 27:a1b41626f57c | 108 | }; |
el17sm | 27:a1b41626f57c | 109 | |
el17sm | 25:112cbcb0b4a7 | 110 | #endif |