Asteroids for MBED game with Bluetooth LE UART Friend Controller, uLCD, speaker, and uSD.

Dependencies:   4DGL-uLCD-SE mbed-rtos mbed

Asteroids for MBED game with Bluetooth LE UART Friend Controller

Committer:
agamemaker
Date:
Sat Mar 12 01:23:40 2016 +0000
Revision:
1:0328ad927150
Parent:
0:16094a49131e
Child:
2:332ca4f1a3e3
first compilable commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agamemaker 0:16094a49131e 1 #include "mbed.h"
agamemaker 0:16094a49131e 2 #include "rtos.h"
agamemaker 0:16094a49131e 3 #include "uLCD_4DGL.h"
agamemaker 1:0328ad927150 4 #include <math.h>
agamemaker 1:0328ad927150 5 #include <list>
agamemaker 1:0328ad927150 6 using namespace std;
agamemaker 0:16094a49131e 7
agamemaker 0:16094a49131e 8 DigitalOut myled(LED1);
agamemaker 0:16094a49131e 9 uLCD_4DGL uLCD(p28,p27,p29);
agamemaker 0:16094a49131e 10
agamemaker 0:16094a49131e 11 class Movement
agamemaker 0:16094a49131e 12 {
agamemaker 1:0328ad927150 13 public:
agamemaker 1:0328ad927150 14 double x_pos; // x position of object
agamemaker 1:0328ad927150 15 double y_pos; //
agamemaker 1:0328ad927150 16 double x_vel; // x velocity of object
agamemaker 1:0328ad927150 17 double y_vel; //
agamemaker 1:0328ad927150 18 double angle; // angle of object
agamemaker 1:0328ad927150 19 int hit_rad; // hit box radius of object
agamemaker 1:0328ad927150 20 bool wrap;
agamemaker 1:0328ad927150 21 Movement(double xp,double yp,double xv,double yv,double a,double r,double w);
agamemaker 1:0328ad927150 22 void move();
agamemaker 1:0328ad927150 23 void accelerate();
agamemaker 1:0328ad927150 24
agamemaker 0:16094a49131e 25 };
agamemaker 0:16094a49131e 26
agamemaker 1:0328ad927150 27 Movement::Movement(double xp,double yp,double xv,double yv,double a,double r,double w)
agamemaker 1:0328ad927150 28 {
agamemaker 1:0328ad927150 29 x_pos = xp;
agamemaker 1:0328ad927150 30 y_pos = yp;
agamemaker 1:0328ad927150 31 x_vel = xv;
agamemaker 1:0328ad927150 32 y_vel = yv;
agamemaker 1:0328ad927150 33 angle = a;
agamemaker 1:0328ad927150 34 hit_rad = r;
agamemaker 1:0328ad927150 35 wrap = w;
agamemaker 1:0328ad927150 36 }
agamemaker 1:0328ad927150 37
agamemaker 1:0328ad927150 38
agamemaker 1:0328ad927150 39 void Movement::move()
agamemaker 1:0328ad927150 40 {
agamemaker 1:0328ad927150 41 x_pos += x_vel;
agamemaker 1:0328ad927150 42 y_pos += y_vel;
agamemaker 1:0328ad927150 43
agamemaker 1:0328ad927150 44 }
agamemaker 1:0328ad927150 45
agamemaker 1:0328ad927150 46 void Movement::accelerate()
agamemaker 1:0328ad927150 47 {
agamemaker 1:0328ad927150 48 x_vel += cos(angle);
agamemaker 1:0328ad927150 49 y_vel += sin(angle);
agamemaker 1:0328ad927150 50 if(sqrt(pow(x_vel,2) + pow(y_vel,2)) > 10){
agamemaker 1:0328ad927150 51 x_vel = x_vel * 10 / sqrt(pow(x_vel,2) + pow(y_vel,2));
agamemaker 1:0328ad927150 52 y_vel = y_vel * 10 / sqrt(pow(x_vel,2) + pow(y_vel,2));
agamemaker 1:0328ad927150 53 }
agamemaker 1:0328ad927150 54 }
agamemaker 1:0328ad927150 55
agamemaker 1:0328ad927150 56
agamemaker 1:0328ad927150 57 bool collision(Movement p1, Movement p2)
agamemaker 1:0328ad927150 58 {
agamemaker 1:0328ad927150 59 int rad = p1.hit_rad + p2.hit_rad;
agamemaker 1:0328ad927150 60 double dist = sqrt(pow((p1.x_pos - p2.x_pos),2) + pow((p1.y_pos - p2.y_pos),2));
agamemaker 1:0328ad927150 61 return dist < rad;
agamemaker 1:0328ad927150 62 }
agamemaker 1:0328ad927150 63
agamemaker 1:0328ad927150 64 void calc_collisions(){
agamemaker 1:0328ad927150 65 }
agamemaker 1:0328ad927150 66
agamemaker 1:0328ad927150 67 void draw_objs(Movement player, list<Movement> asteroids, list<Movement> bullets){
agamemaker 1:0328ad927150 68
agamemaker 1:0328ad927150 69 }
agamemaker 1:0328ad927150 70
agamemaker 1:0328ad927150 71 int main()
agamemaker 1:0328ad927150 72 {
agamemaker 1:0328ad927150 73 Movement player(50, 100, 0, -5, 0, 5, 1);
agamemaker 1:0328ad927150 74 list<Movement> asteroids();
agamemaker 1:0328ad927150 75 list<Movement> bullets();
agamemaker 0:16094a49131e 76 while(1) {
agamemaker 0:16094a49131e 77 player.move();
agamemaker 1:0328ad927150 78 calc_collisions();
agamemaker 1:0328ad927150 79 //draw_objs(player, asteroids, bullets);
agamemaker 1:0328ad927150 80
agamemaker 0:16094a49131e 81 }
agamemaker 0:16094a49131e 82 }