ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el17sdl_v2

Dependencies:   mbed

Committer:
sdlashmar
Date:
Sun May 24 14:19:21 2020 +0000
Revision:
12:cb3a81adf48b
Parent:
5:256e5e0b6cd7
Child:
13:4fa0d5148216
start screen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sdlashmar 5:256e5e0b6cd7 1 #ifndef SNAKEHEAD_H
sdlashmar 5:256e5e0b6cd7 2 #define SNAKEHEAD_H
sdlashmar 3:36f9e3a75905 3
sdlashmar 3:36f9e3a75905 4 #include "mbed.h"
sdlashmar 3:36f9e3a75905 5 #include "N5110.h"
sdlashmar 3:36f9e3a75905 6 #include "Gamepad.h"
sdlashmar 4:c5addc5475d3 7 #include "time.h"
sdlashmar 3:36f9e3a75905 8
sdlashmar 12:cb3a81adf48b 9 /** Snake Head Class
sdlashmar 12:cb3a81adf48b 10 * @author Samuel D Lashmar
sdlashmar 12:cb3a81adf48b 11 * @brief controls the snake head in the snake game and allows user to access certain variable
sdlashmar 12:cb3a81adf48b 12 * @date May 2020
sdlashmar 12:cb3a81adf48b 13 */
sdlashmar 12:cb3a81adf48b 14
sdlashmar 5:256e5e0b6cd7 15 class SnakeHead
sdlashmar 3:36f9e3a75905 16 {
sdlashmar 3:36f9e3a75905 17
sdlashmar 3:36f9e3a75905 18 public:
sdlashmar 12:cb3a81adf48b 19 /** Constructor */
sdlashmar 5:256e5e0b6cd7 20 SnakeHead();
sdlashmar 12:cb3a81adf48b 21 /** Destructor */
sdlashmar 5:256e5e0b6cd7 22 ~SnakeHead();
sdlashmar 12:cb3a81adf48b 23 /** Initialise snake head position, speed an direction
sdlashmar 12:cb3a81adf48b 24 *@param Snake Head size
sdlashmar 12:cb3a81adf48b 25 *@param Snake Head speed
sdlashmar 12:cb3a81adf48b 26 */
sdlashmar 3:36f9e3a75905 27 void init(int size, int speed);
sdlashmar 12:cb3a81adf48b 28 /** Draws snake head on the LCD screen*/
sdlashmar 3:36f9e3a75905 29 void draw(N5110 &lcd);
sdlashmar 12:cb3a81adf48b 30 /** Updates head position */
sdlashmar 4:c5addc5475d3 31 void update();
sdlashmar 12:cb3a81adf48b 32 /** Changes the direction in whihc the head moves
sdlashmar 12:cb3a81adf48b 33 @param Direction d (N,E,S,W)
sdlashmar 12:cb3a81adf48b 34 */
sdlashmar 4:c5addc5475d3 35 void change_direction(Direction d);
sdlashmar 3:36f9e3a75905 36 void set_velocity(Vector2D v);
sdlashmar 3:36f9e3a75905 37 Vector2D get_velocity();
sdlashmar 3:36f9e3a75905 38 Vector2D get_pos();
sdlashmar 3:36f9e3a75905 39 void set_pos(Vector2D p);
sdlashmar 3:36f9e3a75905 40
sdlashmar 4:c5addc5475d3 41
sdlashmar 3:36f9e3a75905 42 private:
sdlashmar 4:c5addc5475d3 43 Vector2D _velocity;
sdlashmar 4:c5addc5475d3 44 Gamepad pad;
sdlashmar 3:36f9e3a75905 45 int _size;
sdlashmar 3:36f9e3a75905 46 int _speed;
sdlashmar 3:36f9e3a75905 47 int _x;
sdlashmar 3:36f9e3a75905 48 int _y;
sdlashmar 3:36f9e3a75905 49 };
sdlashmar 3:36f9e3a75905 50
sdlashmar 3:36f9e3a75905 51 #endif