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
- Committer:
- el17cd
- Date:
- 2019-03-31
- Revision:
- 18:8256546a3cbf
- Parent:
- 17:3c9672c6e532
- Child:
- 19:ec4cb22accb0
File content as of revision 18:8256546a3cbf:
#include "Game.h" Serial pc(USBTX, USBRX); // tx, rx Game::Game(){ homeSelection = 0; gamepad.init(); renderer.init(); timer.start(); for(int i = 0; i < 10; i++){ Cube cube(rand()%100-50,0,20+ i*10,5); cubeVector.push_back(cube); } } void Game::run(){ score = 0; selection = true; playing = true; while(1) { Vector2D coord = gamepad.get_coord(); renderer.clear(); renderer.drawHorizon(coord.x/15); for (int c = 0; c< cubeVector.size(); c++) { if(playing){ if(score < 1500) cubeVector[c].translate((float)-coord.x*1.4,0,-2-(float)score/500); else{ cubeVector[c].translate((float)-coord.x*1.4,0,-3.5); } } for (int i = 0; i < 6; i++){ faceVector.push_back(cubeVector[c].getFace(i)); } if (cubeVector[c].despawn()){ cubeVector.erase(cubeVector.begin() + c); Cube cube(rand()%100-50,0,90,5); cubeVector.push_back(cube); } if (cubeVector[c].tooClose()){ cubeVector.erase(cubeVector.begin() + c); playing = false; //renderer.invertMode(); // ticker.attach(&resetScreen,1); Cube cube(rand()%100-50,0,90,5); cubeVector.push_back(cube); } } for (int f = 0; f< faceVector.size(); f++){ for (int f2 = 0; f2< faceVector.size(); f2++){ if(faceVector[f2].getAvgZ() < faceVector[f2+1].getAvgZ()){ Face temp = faceVector[f2+1]; faceVector[f2+1] = faceVector[f2]; faceVector[f2] = temp; } } } for (int f = 0; f< faceVector.size() ; f++){ //pc.printf("%f\n", faceVector[f].getAvgZ()); renderer.drawFace(faceVector[f], coord.x/15); //wait_ms(1000/1); } if(playing){ score = timer.read_ms()/200; } else{ deathScreen(); if(deathButtonSelections()){ break; } } char buf[10]; sprintf(buf, "%d", score); renderer.print(buf, 0, 0); memset(buf, 0, sizeof buf); renderer.refresh(); faceVector.clear(); wait_ms(1000/30); } } bool Game::deathButtonSelections(){ if(gamepad.check_event(Gamepad::Y_PRESSED) == true){ selection = true; } else if(gamepad.check_event(Gamepad::A_PRESSED) == true){ selection = false; } if (selection == true && gamepad.check_event(Gamepad::B_PRESSED) == true){ playing = true; score = 0; timer.reset(); } else if(selection == false && gamepad.check_event(Gamepad::B_PRESSED) == true){ timer.reset(); return true; } return false; } void Game::homeButtonSelections(){ if(gamepad.check_event(Gamepad::Y_PRESSED) == true && homeSelection > 0){ homeSelection--; } else if(gamepad.check_event(Gamepad::A_PRESSED) == true && homeSelection < 2){ homeSelection++; } if (homeSelection == 0 && gamepad.check_event(Gamepad::B_PRESSED) == true){ run(); } else if(homeSelection == 2 && gamepad.check_event(Gamepad::B_PRESSED) == true){ //return true; } } void Game::deathScreen(){ //int selection = 1; renderer.drawDeathScreen(selection); } void Game::homeScreen(){ while(1){ renderer.clear(); homeButtonSelections(); renderer.drawHomeScreen(homeSelection); renderer.refresh(); wait_ms(1000/30); } }