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-04-01
- Revision:
- 20:3ca430241df0
- Parent:
- 19:ec4cb22accb0
- Child:
- 21:6b5d2d75e083
File content as of revision 20:3ca430241df0:
#include "Game.h" Serial pc(USBTX, USBRX); // tx, rx Game::Game(){ noOfCubes = 10; homeSelection = 0; gamepad.init(); renderer.init(); timer.start(); for(int i = 0; i < noOfCubes; i++){ cubeArray[i].translate(rand()%100-50,0,20+ i*10); } } void Game::run(){ score = 0; selection = true; playing = true; timer.reset(); while(1) { Vector2D coord = gamepad.get_coord(); renderer.clear(); renderer.drawHorizon(coord.x/15); //pc.printf("a"); for (int c = 0; c< noOfCubes; c++){ if(playing){ if(score < 1500) cubeArray[c].translate((float)-coord.x*1.4,0,-2-(float)score/500); else{ cubeArray[c].translate((float)-coord.x*1.4,0,-3.5); } } else{ coord.x = 0; coord.y = 0; } for (int i = 0; i < 6; i++){ faceArray[c*6 + i] = cubeArray[c].getFace(i); } if (cubeArray[c].despawn()){ cubeArray[c].resetPos(); cubeArray[c].translate(rand()%100-50,0,90); } if (cubeArray[c].tooClose()){ playing = false; cubeArray[c].resetPos(); cubeArray[c].translate(rand()%100-50,0,90); } } renderer.drawAllFaces(faceArray, noOfCubes, coord.x);//faceArray, noOfCubes, coord.x); if(playing){ score = timer.read_ms()/200; } else{ deathScreen(); if(deathButtonSelections()){ break; } } char buf[5]; sprintf(buf, "%d", score); renderer.print(buf, 0, 0); memset(buf, 0, sizeof buf); renderer.refresh(); wait_ms(1000/28); } } 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/28); } }