I am learning OOP using c++ on a MicroBit by developing this simple game

Dependencies:   microbit

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "MicroBit.h"
00002 #include "Screen.h"
00003 #include "Bullet.h"
00004 #include "Spacecraft.h"
00005 #include "Asteroid.h"
00006 
00007 MicroBit ubit;
00008 MicroBitSerial serial(USBTX, USBRX);
00009 
00010 int main(){
00011     ubit.init();
00012     Screen screen(&ubit);
00013     
00014     Spacecraft spacecraft;
00015     Bullet bullet;
00016     Asteroid asteroid;
00017 
00018     bullet.setX(spacecraft.getX());
00019     bullet.setY(spacecraft.getY());
00020     
00021     int rnd = 6;
00022     rnd = ubit.random(5);
00023     
00024     asteroid.setX(rnd);
00025     asteroid.setY(0);    
00026     
00027     int dist;
00028     while(true){
00029         
00030         // move spacecraft
00031         rnd = ubit.random(9);
00032         if(rnd > 5)
00033             spacecraft.moveRight();
00034         else if(rnd < 3) 
00035             spacecraft.moveLeft();
00036         
00037         
00038         // move bullet
00039         for(int i = 0; i < 2; i++){
00040             if(bullet.getY() == 0)
00041                 bullet.setX(spacecraft.getX());
00042             bullet.move();
00043             
00044             if(asteroid.hitBy(bullet)){
00045                 screen.draw(bullet);
00046                 screen.draw(spacecraft);
00047                 screen.draw(asteroid);
00048                 screen.refresh();
00049                 release_fiber();
00050             }
00051             
00052             if(asteroid.getY() == 4){
00053                 rnd = ubit.random(5);
00054                 asteroid.setX(rnd);
00055                 serial.send(asteroid.getX());
00056                 serial.send(',');
00057                 serial.send(rnd);
00058                 serial.send("\n\r");
00059             }
00060             asteroid.move();
00061             
00062             if(asteroid.hitBy(bullet)){
00063                 screen.draw(bullet);
00064                 screen.draw(spacecraft);
00065                 screen.draw(asteroid);
00066                 screen.refresh();
00067                 release_fiber();
00068             }
00069             
00070             ubit.sleep(200);
00071             
00072             screen.draw(bullet);
00073             screen.draw(spacecraft);
00074             screen.draw(asteroid);
00075             screen.refresh();
00076         }
00077         
00078     }  
00079     
00080     release_fiber();
00081 }