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:
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?

UserRevisionLine numberNew 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