I am learning OOP using c++ on a MicroBit by developing this simple game
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Sun Aug 7 2022 05:10:42 by
1.7.2