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:
- S_Tingle
- Date:
- 2019-05-09
- Revision:
- 24:7770c7f27cdc
- Parent:
- 23:5e8a435e568f
- Child:
- 25:1d3bf74dddeb
File content as of revision 24:7770c7f27cdc:
#include "Game.h" Game::Game() { } Game::~Game() { } void Game::init() { // set character coordinates and health // smiley.init(x, y); _health = 10; // initialise all coin coordinates // coin1.init(41, 42); coin2.init(41, 23); coin3.init(78, 42); coin4.init(22, 34); coin5.init(22, 12); coin6.init(59, 12); coin7.init(59, 34); coin8.init(78, 14); coin9.init(78, 4); coin10.init(41, 4); coin11.init(4, 4); coin12.init(78, 23); coin13.init(13, 14); // initialise all enemy coordinates // enemyA.init(28, 18); enemy1.init(58, 31); enemyB.init(67, 20); enemy2.init(67, 12); enemyC.init(1, 1); } int Game::get_health() { return _health; } void Game::direc(Gamepad &pad) { dir = pad.get_direction(); } void Game::display_health(N5110 &lcd) { // displays updating health value on screen // char buffer[14]; sprintf(buffer,"%d",_health); lcd.printString(buffer,0,5); } void Game::drawSprite(N5110 &lcd) { // draws maze // maze.drawSprite(lcd); // draws all coins // coin1.drawSprite(lcd); coin2.drawSprite(lcd); coin3.drawSprite(lcd); coin4.drawSprite(lcd); coin5.drawSprite(lcd); coin6.drawSprite(lcd); coin7.drawSprite(lcd); coin8.drawSprite(lcd); coin9.drawSprite(lcd); coin10.drawSprite(lcd); coin11.drawSprite(lcd); coin12.drawSprite(lcd); coin13.drawSprite(lcd); // draws all enemies // enemyA.drawSpriteA(lcd); enemy1.drawSprite1(lcd); enemyB.drawSpriteB(lcd); enemy2.drawSprite2(lcd); enemyC.drawSpriteC(lcd); smiley.drawSprite(lcd); } void Game::movement(N5110 &lcd, Gamepad &pad) { // all sprite movement // smiley.movement(dir, lcd); enemyA.movementA(lcd); enemy1.movement1(lcd); enemyB.movementB(lcd); enemy2.movement2(lcd); enemyC.movementC(lcd); } void Game::collect(N5110 &lcd, Gamepad &pad) { // detects whether the coin needs to be respawned // int x = smiley.get_x_char(); int y = smiley.get_y_char(); coin1.spawn(x, y, lcd, pad); coin2.spawn(x, y, lcd, pad); coin3.spawn(x, y, lcd, pad); coin4.spawn(x, y, lcd, pad); coin5.spawn(x, y, lcd, pad); coin6.spawn(x, y, lcd, pad); coin7.spawn(x, y, lcd, pad); coin8.spawn(x, y, lcd, pad); coin9.spawn(x, y, lcd, pad); coin10.spawn(x, y, lcd, pad); coin11.spawn(x, y, lcd, pad); coin12.spawn(x, y, lcd, pad); coin13.spawn(x, y, lcd, pad); } void Game::win(N5110 &lcd) { // detects a win and displays win screen // if (coin == 1) { lcd.clear(); lcd.printString("YOU",30,2); lcd.printString("WIN",30,3); lcd.printString(":)",30,3); lcd.refresh(); wait(2); } } void Game::damage(N5110 &lcd, Gamepad &pad) { // if collision with enemy detected -1 live // int x = smiley.get_x_char(); int y = smiley.get_y_char(); if (enemyA.collidePlayer(x, y, pad) == true || enemy1.collidePlayer(x, y, pad) == true || enemyB.collidePlayer(x, y, pad) == true || enemy2.collidePlayer(x, y, pad) == true || enemyC.collidePlayer(x, y, pad) == true) { _health--; wait(0.1); } } void Game::death(N5110 &lcd) { // detects a loss and displays game over screen // if (_health == 0) { lcd.clear(); lcd.printString("PUT",30,1); lcd.printString("ON",30,2); lcd.printString("TIMEOUT",30,3); lcd.printString(":(",30,4); lcd.refresh(); wait(2); } } void Game::UI(N5110 &lcd, Gamepad &pad) { // function to call on main menu in main // menu.main(lcd,pad); }