ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Frogger/Frogger.h

Committer:
el19tb
Date:
2020-05-17
Revision:
37:65c9e5a65738
Parent:
29:2151cd327a36
Child:
42:04e326dcf09b

File content as of revision 37:65c9e5a65738:

#ifndef FROGGER_H
#define FROGGER_H

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "Frog.h"
#include "WaterObject.h"
#include "Level.h"

#include <vector>

struct Water
{
    int x;
    int row;
    char c;
    float speed;
}; 

struct Safety
{
    int x;
    int row;
    char c;    
};

class Frogger
{
    public: 
        
        GraphicEngine *graphics; // local renderer object
        Level *levelptr; // local level object
        Frog *frog;
        int grid; // size of one game unit
       

        Frogger(GraphicEngine *engine, Level *levelptr, Frog *frog, int grid, int w, int h); // constructor
        
    public:
        int current_level;
        
    public:
    
        Gamepad gamepad;
        int row_number;
        int grid_width; // screen width in grid units
        int lcd_w;
        int lcd_h;
        
        std::vector<Background> roads;
        std::vector<Safety> safety_lane;
        std::vector<Water> water;
        int grid; // size of game unit grids in the screen
       
    public:
        void start();
        void input();  
        void process_input(); 
        void clear();
        
        void game();
        void refresh();
         
        void moveChicken(int xWay, int yWay);
        
        void moveCar(Car *car, int dir, int x);
        void move();
        
        void setup();
        void setCollision(Car* object);
        void frogOnLog(Car* car);
        bool returnCollision(Car* log);       
};


#endif