Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL-uLCD-SE DebounceIn mbed
game.h
- Committer:
 - rquinn7
 - Date:
 - 2015-10-20
 - Revision:
 - 1:34bb7c386b9f
 - Parent:
 - 0:bbc2ad180020
 
File content as of revision 1:34bb7c386b9f:
#include <vector>
#include "mbed.h"
struct vec2 {
    double x;
    double y;  
};
//Class for the asteroids falling from the sky
class Missile{
private:
public:
    bool moved;
    double x_change;
    double y_change;
    vec2 spawn;
    vec2 dest;
    vec2 coord;
    vec2 old_coord;
    vec2 size;
    int steps;
    
    vec2 prev_coord;
  
Missile(vec2 giv_spawn, vec2 giv_dest, int steps_in) :  moved(false)
{
    spawn = giv_spawn;
    dest = giv_dest;
    coord = giv_spawn;
    old_coord = coord;
    size.x = 6;
    size.y = 6;
    steps = steps_in;
    x_change = (dest.x - spawn.x) / steps;
    y_change = (dest.y - spawn.y) / steps;
    
}
//When called, moves the asteroid towards the bottom
void move(){ 
    old_coord = coord;
    moved = true;
    coord.x = coord.x + x_change;
    coord.y = coord.y + y_change;
}
};
//Handles all the fired projectiles
class Projectile{
private:
public:
    bool moved;
    vec2 old_coord;
    vec2 coord;
    vec2 size;
    
Projectile(vec2 coord_in) : moved(false)
{
    coord.x = coord_in.x + 3;
    coord.y = coord_in.y + 6;
    old_coord = coord;
    size.x = 3;
    size.y = 3;
}
void move(){ 
    old_coord = coord;
    moved = true;
    coord.y = coord.y - 4;
}
};
//Handles the object the user controls
class Shooter{
private:
public:
    bool moved;
    vec2 coord;
    vec2 old_coord;
    vec2 size;
    
Shooter() : moved(false)
{
    coord.x = 58;
    coord.y = 125;
    old_coord = coord;
    size.x = 11;
    size.y = 5;
}
};