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-03
- Revision:
- 22:236319885874
- Parent:
- 21:6b5d2d75e083
- Child:
- 25:3995271e411c
File content as of revision 22:236319885874:
#include "Game.h" Game::Game(){ noOfCubes = 25; homeSelection = 0; gamepad.init(); renderer.init(); for(int i = 0; i < noOfCubes; i++){ cubeArray[i].translate(rand()%250-125,0,20+ i*10); } } void Game::run(){ score = 0; selection = true; playing = true; while(1) { renderer.clear(); coord = gamepad.get_coord(); renderer.drawHorizon(coord.x/15); for (int c = 0; c< noOfCubes; c++){ if(playing){ if(score < 2000) cubeArray[c].translate(-coord.x*1.4f,0,-1-(float)score/1000); else{ cubeArray[c].translate(-coord.x*1.4f,0,-3); } } else{ coord.x = 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()%250-125,0,140); } if (cubeArray[c].tooClose()){ playing = false; cubeArray[c].resetPos(); cubeArray[c].translate(rand()%250-125,0,140); } } renderer.drawAllFaces(faceArray, noOfCubes, coord.x); if(!playing){ deathScreen(); if(deathButtonSelections()){ break; } } else{ addScore(); } char buf[5]; sprintf(buf, "%d", score/3); renderer.print(buf, 0, 0); memset(buf, 0, sizeof buf); renderer.refresh(); wait_ms(1000/60); } } void Game::addScore(){ score++; } void Game::resetScore(){ score = 0; } 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; resetScore(); } else if(selection == false && gamepad.check_event(Gamepad::B_PRESSED) == true){ resetScore(); 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(){ renderer.drawDeathScreen(selection); } void Game::homeScreen(){ while(1){ renderer.clear(); homeButtonSelections(); renderer.drawHomeScreen(homeSelection); renderer.refresh(); wait_ms(1000/60); } }