World In the Balance

Dependencies:   mbed 4DGL-uLCD-SE PinDetect

WITB.h

Committer:
ckaminsky7
Date:
2021-12-04
Revision:
0:eb6c4121cfd1

File content as of revision 0:eb6c4121cfd1:

#include "mbed.h"
#include "uLCD_4DGL.h"
#include "MMA8452.h"
#include "Speaker.h"
#include "PinDetect.h"
#include <cmath>
#include <ctime>

#ifndef WITB_H
#define WITB_H

void clear();
void endGame();


class ScreenObject{
    private:
        int xPos;
        int yPos;
        
    public:
        ScreenObject()
         : xPos(0), yPos(0) {}

        void setXPos(int x);
        void setYPos(int y);
        int getXPos();
        int getYPos();
        virtual void setdx(int x) = 0;
        virtual void setdy(int y) = 0;
        virtual int getdx() = 0;
        virtual int getdy() = 0;
        
        void setBaud();
         
        virtual void draw() = 0;
        virtual void update() = 0;
        
};

class GameTimer : public ScreenObject{
    private:
        int x;
        int y;
        int dx;
        int dy;
        time_t StartTime;
        time_t ElapsedTime;
        
    public:
        GameTimer()
         : x(0), y(0) {}
         
        void setX(int X){x = X;}
        void setY(int Y);
        int getX();
        int getY();
        
        void starttimer();
        
        virtual void setdx(int x);
        virtual void setdy(int y);
        virtual int getdx();
        virtual int getdy();
        virtual void draw();
        virtual void update();   
};

class AbstractAsteroid : public ScreenObject{
    private:
        int dx;
        int dy;
        
    public:
        AbstractAsteroid()
         : dx(0), dy(0) {}
         
        virtual void setdx(int x);
        virtual void setdy(int y);
        virtual int getdx();
        virtual int getdy();
};

class EarthSS : public ScreenObject{
    private:
        int dx;
        int dy;

    public:
        EarthSS()
         : dx(0), dy(0) {}
    
        virtual void setdx(int x);
        virtual void setdy(int y);
        virtual int getdx();
        virtual int getdy();
    
        virtual void draw();
        virtual void update();
};

class ConcreteAsteroid1 : public AbstractAsteroid{
    private:
        
    public:
        ConcreteAsteroid1() {}
        virtual void draw();
        virtual void update();
    
};

class ConcreteAsteroid2 : public AbstractAsteroid{
    private:
        
    public:
        ConcreteAsteroid2() {}
        virtual void draw();
        virtual void update();
};

class ConcreteAsteroid3 : public AbstractAsteroid{
    private:
        
    public:
        ConcreteAsteroid3() {}
        virtual void draw();
        virtual void update();
};

class ConcreteAsteroid4 : public AbstractAsteroid{
    private:
    
    public:
        ConcreteAsteroid4() {}
        virtual void draw();
        virtual void update();
    
};

bool overlap(ScreenObject & objectA, ScreenObject & objectB);

void loseGame(ScreenObject & A);
void winGame();

#endif