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: mbed
Game/Game.cpp@15:8fbbdefbe720, 2019-03-31 (annotated)
- Committer:
- el17cd
- Date:
- Sun Mar 31 14:56:55 2019 +0000
- Revision:
- 15:8fbbdefbe720
- Child:
- 16:64cd7bc094f9
Created game class
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el17cd | 15:8fbbdefbe720 | 1 | #include "Game.h" |
el17cd | 15:8fbbdefbe720 | 2 | |
el17cd | 15:8fbbdefbe720 | 3 | Game::Game(){ |
el17cd | 15:8fbbdefbe720 | 4 | score = 0; |
el17cd | 15:8fbbdefbe720 | 5 | gamepad.init(); |
el17cd | 15:8fbbdefbe720 | 6 | renderer.init(); |
el17cd | 15:8fbbdefbe720 | 7 | |
el17cd | 15:8fbbdefbe720 | 8 | for(int i = 0; i < 7; i++){ |
el17cd | 15:8fbbdefbe720 | 9 | Cube cube(rand()%80-40,0,30+ i*20,5); |
el17cd | 15:8fbbdefbe720 | 10 | cubeVector.push_back(cube); |
el17cd | 15:8fbbdefbe720 | 11 | } |
el17cd | 15:8fbbdefbe720 | 12 | } |
el17cd | 15:8fbbdefbe720 | 13 | |
el17cd | 15:8fbbdefbe720 | 14 | void Game::run(){ |
el17cd | 15:8fbbdefbe720 | 15 | |
el17cd | 15:8fbbdefbe720 | 16 | while(1) { |
el17cd | 15:8fbbdefbe720 | 17 | Vector2D coord = gamepad.get_coord(); |
el17cd | 15:8fbbdefbe720 | 18 | renderer.clear(); |
el17cd | 15:8fbbdefbe720 | 19 | |
el17cd | 15:8fbbdefbe720 | 20 | if(playing){ |
el17cd | 15:8fbbdefbe720 | 21 | score++; |
el17cd | 15:8fbbdefbe720 | 22 | } |
el17cd | 15:8fbbdefbe720 | 23 | |
el17cd | 15:8fbbdefbe720 | 24 | renderer.drawHorizon(coord.x/15); |
el17cd | 15:8fbbdefbe720 | 25 | for (int c = 0; c< cubeVector.size(); c++) |
el17cd | 15:8fbbdefbe720 | 26 | { |
el17cd | 15:8fbbdefbe720 | 27 | if(playing){ |
el17cd | 15:8fbbdefbe720 | 28 | cubeVector[c].translate(-coord.x*1.4,0,-3); |
el17cd | 15:8fbbdefbe720 | 29 | } |
el17cd | 15:8fbbdefbe720 | 30 | for (int i = 0; i < 6; i++){ |
el17cd | 15:8fbbdefbe720 | 31 | faceVector.push_back(cubeVector[c].getFace(i)); |
el17cd | 15:8fbbdefbe720 | 32 | } |
el17cd | 15:8fbbdefbe720 | 33 | if (cubeVector[c].despawn()){ |
el17cd | 15:8fbbdefbe720 | 34 | cubeVector.erase(cubeVector.begin() + c); |
el17cd | 15:8fbbdefbe720 | 35 | Cube cube(rand()%80-40,0,90,5); |
el17cd | 15:8fbbdefbe720 | 36 | cubeVector.push_back(cube); |
el17cd | 15:8fbbdefbe720 | 37 | } |
el17cd | 15:8fbbdefbe720 | 38 | if (cubeVector[c].tooClose()){ |
el17cd | 15:8fbbdefbe720 | 39 | cubeVector.erase(cubeVector.begin() + c); |
el17cd | 15:8fbbdefbe720 | 40 | playing = false; |
el17cd | 15:8fbbdefbe720 | 41 | //renderer.invertMode(); |
el17cd | 15:8fbbdefbe720 | 42 | score = 0; |
el17cd | 15:8fbbdefbe720 | 43 | // ticker.attach(&resetScreen,1); |
el17cd | 15:8fbbdefbe720 | 44 | Cube cube(rand()%80-40,0,90,5); |
el17cd | 15:8fbbdefbe720 | 45 | cubeVector.push_back(cube); |
el17cd | 15:8fbbdefbe720 | 46 | } |
el17cd | 15:8fbbdefbe720 | 47 | } |
el17cd | 15:8fbbdefbe720 | 48 | for (int f = 0; f< faceVector.size(); f++){ |
el17cd | 15:8fbbdefbe720 | 49 | for (int f2 = 0; f2< faceVector.size(); f2++){ |
el17cd | 15:8fbbdefbe720 | 50 | if(faceVector[f2].getAvgZ() < faceVector[f2+1].getAvgZ()){ |
el17cd | 15:8fbbdefbe720 | 51 | Face temp = faceVector[f2+1]; |
el17cd | 15:8fbbdefbe720 | 52 | faceVector[f2+1] = faceVector[f2]; |
el17cd | 15:8fbbdefbe720 | 53 | faceVector[f2] = temp; |
el17cd | 15:8fbbdefbe720 | 54 | } |
el17cd | 15:8fbbdefbe720 | 55 | } |
el17cd | 15:8fbbdefbe720 | 56 | } |
el17cd | 15:8fbbdefbe720 | 57 | |
el17cd | 15:8fbbdefbe720 | 58 | for (int f = 0; f< faceVector.size() ; f++){ |
el17cd | 15:8fbbdefbe720 | 59 | //pc.printf("%f\n", faceVector[f].getAvgZ()); |
el17cd | 15:8fbbdefbe720 | 60 | renderer.drawFace(faceVector[f], coord.x/15); |
el17cd | 15:8fbbdefbe720 | 61 | //wait_ms(1000/1); |
el17cd | 15:8fbbdefbe720 | 62 | |
el17cd | 15:8fbbdefbe720 | 63 | } |
el17cd | 15:8fbbdefbe720 | 64 | char buf[10]; |
el17cd | 15:8fbbdefbe720 | 65 | sprintf(buf, "%d", score); |
el17cd | 15:8fbbdefbe720 | 66 | renderer.print(buf); |
el17cd | 15:8fbbdefbe720 | 67 | memset(buf, 0, sizeof buf); |
el17cd | 15:8fbbdefbe720 | 68 | renderer.refresh(); |
el17cd | 15:8fbbdefbe720 | 69 | faceVector.clear(); |
el17cd | 15:8fbbdefbe720 | 70 | |
el17cd | 15:8fbbdefbe720 | 71 | wait_ms(1000/30); |
el17cd | 15:8fbbdefbe720 | 72 | } |
el17cd | 15:8fbbdefbe720 | 73 | } |
el17cd | 15:8fbbdefbe720 | 74 |