ELEC2645 (2018/19) / Mbed 2 deprecated 2645_Project_SiutingWong201186503

Dependencies:   mbed

Engine/Engine.h

Committer:
davidwst421
Date:
2019-05-09
Revision:
7:193c0fd7afdd
Parent:
6:a0f3dbbc8d33
Child:
13:c3c58d50a571

File content as of revision 7:193c0fd7afdd:

#ifndef ENGINE_H
#define ENGINE_H

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "Stone.h"
#include "Avenger.h"
#include "Wall.h"

class Engine
{

public:
    Engine();
    ~Engine();
    void init(int wall_width,int wall_gap,int stone_size,int speed);
    void read_input(Gamepad &pad);
    void draw(N5110 &lcd);
    void update(Gamepad &pad);
    int get_score();
    
private:

    void check_wall_collision(Gamepad &pad);
    void check_score(Gamepad &pad);
    void print_score(N5110 &lcd);
    
    Wall _w0;
    Wall _w1;
    Wall _w2;
    Wall _w3;
    Wall _w4;
    
    int _wall_width;
    int _wall_gap;
    int _stone_size;
    int _speed;
    
    // x positions of the paddles
    int _w0x;
    int _w1x;
    int _w2x;
    int _w3x;
    int _w4x;
    int _avengerx;
    int _stonex;
    
    Avenger _avenger;
    Stone _stone;
    
    Direction _d;
    float _mag;
    Vector2D _mapped_coord;


};

#endif