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:
Fri Mar 11 17:43:25 2016 +0000
Revision:
0:16094a49131e
Child:
1:0328ad927150
First copy

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 0:16094a49131e 4
agamemaker 0:16094a49131e 5 DigitalOut myled(LED1);
agamemaker 0:16094a49131e 6 uLCD_4DGL uLCD(p28,p27,p29);
agamemaker 0:16094a49131e 7
agamemaker 0:16094a49131e 8 class Movement
agamemaker 0:16094a49131e 9 {
agamemaker 0:16094a49131e 10 public:
agamemaker 0:16094a49131e 11 double x_pos; // x position of object
agamemaker 0:16094a49131e 12 double y_pos; //
agamemaker 0:16094a49131e 13 double x_vel; // x velocity of object
agamemaker 0:16094a49131e 14 double y_vel; //
agamemaker 0:16094a49131e 15 double angle; // angle of object
agamemaker 0:16094a49131e 16 double hit_rad // hit box radius of object
agamemaker 0:16094a49131e 17
agamemaker 0:16094a49131e 18 Movement(double xp,yp,xv,yv,a,r){
agamemaker 0:16094a49131e 19 x_pos = xp;
agamemaker 0:16094a49131e 20 y_pos = yp;
agamemaker 0:16094a49131e 21 x_vel = xv;
agamemaker 0:16094a49131e 22 y_vel = yv;
agamemaker 0:16094a49131e 23 angle = a;
agamemaker 0:16094a49131e 24 hit_rad = r;
agamemaker 0:16094a49131e 25 }
agamemaker 0:16094a49131e 26
agamemaker 0:16094a49131e 27 void move(){
agamemaker 0:16094a49131e 28 p.x_pos = (p.x_pos + p.x_vel)%144;
agamemaker 0:16094a49131e 29 p.y_pos = (p.x_pos + p.y_vel)%144;
agamemaker 0:16094a49131e 30
agamemaker 0:16094a49131e 31 }
agamemaker 0:16094a49131e 32
agamemaker 0:16094a49131e 33 void accelerate(){
agamemaker 0:16094a49131e 34 p.x_vel += cos(angle);
agamemaker 0:16094a49131e 35 p.y_vel += sin(angle);
agamemaker 0:16094a49131e 36 if(sqrt(p.x_vel^2 + p.y_vel^2) > 10)
agamemaker 0:16094a49131e 37 x_vel = p.x_vel * 10 / sqrt(x_vel^2 + y_vel^2);
agamemaker 0:16094a49131e 38 y_vel = p.y_vel * 10 / sqrt(x_vel^2 + y_vel^2);
agamemaker 0:16094a49131e 39
agamemaker 0:16094a49131e 40 bool collision(&Movent p2){
agamemaker 0:16094a49131e 41 rad = hit_rad + p2.hitrad;
agamemaker 0:16094a49131e 42 dist = sqrt((x_pos - p2.x_pos)^2 + (y_pos - p2.y_pos);
agamemaker 0:16094a49131e 43 return dist < rad;
agamemaker 0:16094a49131e 44 }
agamemaker 0:16094a49131e 45 };
agamemaker 0:16094a49131e 46
agamemaker 0:16094a49131e 47 int main() {
agamemaker 0:16094a49131e 48 Movement player(50, 100, 0, -5, 0, 5);
agamemaker 0:16094a49131e 49 Movement asteroid(50, 100, 0, -5, 0, 5);
agamemaker 0:16094a49131e 50 while(1) {
agamemaker 0:16094a49131e 51 player.move();
agamemaker 0:16094a49131e 52 asteroid.move();
agamemaker 0:16094a49131e 53 if(player.collision(asteroid)){
agamemaker 0:16094a49131e 54
agamemaker 0:16094a49131e 55 }
agamemaker 0:16094a49131e 56
agamemaker 0:16094a49131e 57
agamemaker 0:16094a49131e 58 }
agamemaker 0:16094a49131e 59 }