#ifndef PLAYER_H #define PLAYER_H #include #include #include #include #include enum { STATIC = 0, DRAFT = 1, WALK = 2, RUN = 3, JUMP = 4, FALL = 5, }; #define LEFT libnum::num(-1) #define TOP libnum::num(-1) #define CENTER libnum::num(0) #define BOTTOM libnum::num(+1) #define RIGHT libnum::num(+1) class Player { public: Player(int16_t _x, int16_t _y); ~Player(); void Update(float dt); void Render(); void Left(float dt); void Right(float dt); void Up(float dt); void Down(float dt); void Nothing(float dt); void Jump(float dt); libnum::num currx, curry; // center position of the player libnum::num nextx, nexty; // interim x and y position (to be tested to check if they can be // actually achieved or not while moving) int8_t tileX, tileY; libnum::num vx, vy; // speed of the player as per x and y coordinates libnum::num ax, ay; // acceleration of the player as per x an y coordinates uint32_t last_tick; }; #endif