ELEC2645 (2018/19) / Mbed 2 deprecated el17cd

Dependencies:   mbed

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?

UserRevisionLine numberNew 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