ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18jkeo

Dependencies:   mbed

SpaceInvaderEngine/SpaceInvaderEngine.h

Committer:
josh_ohara
Date:
2020-04-06
Revision:
15:dde4ce4bf7fe
Parent:
14:e88bcf5c0887
Child:
16:987f72d9bb8f

File content as of revision 15:dde4ce4bf7fe:

#ifndef SPACEINVADERENGINE_H
#define SPACEINVADERENGINE_H

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "BulletS.h"
#include "Ship.h"
#include "Armada.h"
#include "Cover.h"
#include <vector>

#define BORDER 2

class SpaceInvaderEngine
{

public:
    SpaceInvaderEngine();
    ~SpaceInvaderEngine();
    void init(int ship_height, int ship_width, int alien_size, int no_aliens, int armada_column_size, int armada_row_size, int cover_y, int cover1_x, int cover2_x, int cover3_x, int no_rocks);
    void read_input(Gamepad &pad);
    void update(Gamepad &pad, N5110 &lcd);
    void render(N5110 &lcd);
    void shoot_bullet();
    void get_ship_pos();
    void ship_bullet_alien_collision(Gamepad &pad, N5110 &lcd);
    void ship_bullet_cover1_collision(Gamepad &pad, N5110 &lcd);
    void ship_bullet_cover2_collision(Gamepad &pad, N5110 &lcd);
    void ship_bullet_cover3_collision(Gamepad &pad, N5110 &lcd);
 
private:

    Armada A1;
    Ship S1;
    BulletS BS1;
    Cover C1;
    Cover C2;
    Cover C3;
    
    int S1_height;
    int S1_width;
    int A1_size;
    int N;
    int CS;
    int RS;
    
    int A1y;
    int S1x;
    int S1y;
    int Cy;
    int C1x;
    int C2x;
    int C3x;
    int NR;
    
    
    Direction D;
    float Mag;
    
};

#endif