ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18s2a_2

Dependencies:   mbed

SnakeEngine/SnakeEngine.h

Committer:
Psy1990
Date:
2020-06-05
Revision:
13:c20acb3b1adf
Parent:
12:8eb40a18f15d
Child:
16:8cb23849b95a

File content as of revision 13:c20acb3b1adf:

#ifndef SNAKEENGINE_H
#define SNAKEENGINE_H

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "Apple.h"
#include "Snake.h"
#include "Bitmap.h"
/** Apple Class File
* @brief Class containing the engine that runs the game.
* @author Simon Atkinson
* @date June 2020
*/

// gap from edge of screen
#define GAP 2


class SnakeEngine
{

public:
    SnakeEngine();
    ~SnakeEngine();

    void init(int apple_size, int snake_speed, int snake_score, int snake_snakeheight, int snake_snakewidth);
    void read_input(Gamepad &pad);  //Allows us to read the input from the thumbstick
    void update(Gamepad &pad, N5110 &lcd);      //Allows us to update the gamepad 
    void draw(N5110 &lcd);          //Allows us to draw on the screen
    void dead(N5110 &lcd, Gamepad &pad); // The snake is DEAD :(
    void eat(N5110 &lcd, Gamepad &pad); // Deals with the snake eating the apple
private:

    void print_score(N5110 &lcd);
    
    int sx;  //Snake X
    int sy;  //Snake Y
    int ax;  //Apple X
    int ay;  //Apple Y
    int _apple_size;  //Apple size is defined and taken from main.cpp
    int _snake_speed; //Stores the speed the snake goes
    int _snake_score; //Stores the score
    int _snake_snakeheight; // Snake Hight
    int _snake_snakewidth; // Snake Width
    bool _dead;
    
    Snake _s;   //Allows us to use the Snake 
    Apple _a;   //Allows us to use the Apple 
    Direction _d; //Direction
    float _mag;   //Magnitude
    


};

#endif