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 Apr 25 05:27:43 2019 +0000
Revision:
21:be18f33da757
Parent:
16:ddb203a74dfc
Snake half done no clear screen error

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17sm 10:1a3499f6b583 1 #ifndef ENTITY_H
el17sm 10:1a3499f6b583 2 #define ENTITY_H
el17sm 10:1a3499f6b583 3 #include "sprites.h"
el17sm 10:1a3499f6b583 4 #include "math.h"
el17sm 10:1a3499f6b583 5
el17sm 10:1a3499f6b583 6 class Entity
el17sm 21:be18f33da757 7 {
el17sm 21:be18f33da757 8 protected:
el17sm 21:be18f33da757 9 bool moving;
el17sm 21:be18f33da757 10 struct Hitbox {
el17sm 21:be18f33da757 11 int width;
el17sm 21:be18f33da757 12 int height;
el17sm 21:be18f33da757 13 };
el17sm 21:be18f33da757 14 Hitbox hitbox;
el17sm 21:be18f33da757 15 struct SpriteSize {
el17sm 21:be18f33da757 16 int width;
el17sm 21:be18f33da757 17 int height;
el17sm 21:be18f33da757 18 // Top-left corner of sprite is offset_x
el17sm 21:be18f33da757 19 // to the right of top-left corner of hitbox
el17sm 21:be18f33da757 20 int offset_x;
el17sm 21:be18f33da757 21 // Top-left corner of sprite is offset_y
el17sm 21:be18f33da757 22 // above of top-left corner of hitbox
el17sm 21:be18f33da757 23 int offset_y;
el17sm 21:be18f33da757 24 };
el17sm 21:be18f33da757 25 SpriteSize sprite_size;
el17sm 21:be18f33da757 26 struct Position {
el17sm 21:be18f33da757 27 float x;
el17sm 21:be18f33da757 28 float y;
el17sm 21:be18f33da757 29 };
el17sm 21:be18f33da757 30 Position position;
el17sm 21:be18f33da757 31 Position prev_pos;
el17sm 21:be18f33da757 32 struct FrameCount {
el17sm 21:be18f33da757 33 int count;
el17sm 21:be18f33da757 34 int number;
el17sm 21:be18f33da757 35 int max;
el17sm 21:be18f33da757 36 };
el17sm 21:be18f33da757 37 FrameCount frame;
el17sm 21:be18f33da757 38 int hp;
el17sm 21:be18f33da757 39 int face;
el17sm 21:be18f33da757 40 float velocity;
el17sm 21:be18f33da757 41
el17sm 21:be18f33da757 42 public:
el17sm 21:be18f33da757 43 // Function
el17sm 21:be18f33da757 44 virtual void move(float, float) = 0; // movement control and miscellaneous updates
el17sm 21:be18f33da757 45 virtual int * get_frame() = 0;
el17sm 21:be18f33da757 46 bool matrix_collision_test(float, float, int);
el17sm 21:be18f33da757 47 void undo_move_x(bool);
el17sm 21:be18f33da757 48 void undo_move_y(bool);
el17sm 21:be18f33da757 49 void update_prev_pos();
el17sm 21:be18f33da757 50 void take_damage(int);
el17sm 21:be18f33da757 51 bool death_check();
el17sm 21:be18f33da757 52
el17sm 21:be18f33da757 53 // Mutator
el17sm 21:be18f33da757 54
el17sm 21:be18f33da757 55 // Accessors
el17sm 21:be18f33da757 56 bool get_moving();
el17sm 21:be18f33da757 57 int get_hitbox_width();
el17sm 21:be18f33da757 58 int get_hitbox_height();
el17sm 21:be18f33da757 59 int get_face(); // not used yet
el17sm 21:be18f33da757 60 int get_sprite_width();
el17sm 21:be18f33da757 61 int get_sprite_height();
el17sm 21:be18f33da757 62 int get_offset_x();
el17sm 21:be18f33da757 63 int get_offset_y();
el17sm 21:be18f33da757 64 int get_pos_x();
el17sm 21:be18f33da757 65 int get_pos_y();
el17sm 21:be18f33da757 66 int get_prev_pos_x();
el17sm 21:be18f33da757 67 int get_prev_pos_y();
el17sm 10:1a3499f6b583 68
el17sm 10:1a3499f6b583 69 };
el17sm 10:1a3499f6b583 70
el17sm 10:1a3499f6b583 71 #endif