ELEC2645 (2018/19) / Mbed 2 deprecated el17set_

Dependencies:   mbed

Committer:
S_Tingle
Date:
Thu May 09 14:40:58 2019 +0000
Revision:
26:3652bc2fe3fc
Parent:
24:7770c7f27cdc
I understand the university's rules on plagiarism. I hereby declare this my own independent work.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
S_Tingle 22:8e38efeae0c9 1 /*
S_Tingle 22:8e38efeae0c9 2 Name: Spencer Tingle
S_Tingle 22:8e38efeae0c9 3 Username: el17set
S_Tingle 22:8e38efeae0c9 4 Student ID: 201147893
S_Tingle 22:8e38efeae0c9 5 Date: 09/05/19
S_Tingle 22:8e38efeae0c9 6 */
S_Tingle 22:8e38efeae0c9 7
S_Tingle 5:e6cb6fda5b37 8 #include "mbed.h"
S_Tingle 5:e6cb6fda5b37 9 #include "Gamepad.h"
S_Tingle 5:e6cb6fda5b37 10 #include "N5110.h"
S_Tingle 5:e6cb6fda5b37 11 #include "Game.h"
S_Tingle 14:d0650d0de063 12 #include "Menu.h"
S_Tingle 22:8e38efeae0c9 13 #include "Coin.h"
S_Tingle 5:e6cb6fda5b37 14
S_Tingle 22:8e38efeae0c9 15 // objects //
S_Tingle 5:e6cb6fda5b37 16 Game game;
S_Tingle 5:e6cb6fda5b37 17 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
S_Tingle 5:e6cb6fda5b37 18 Gamepad pad;
S_Tingle 5:e6cb6fda5b37 19
S_Tingle 22:8e38efeae0c9 20 // prototypes //
S_Tingle 5:e6cb6fda5b37 21 void init();
S_Tingle 5:e6cb6fda5b37 22 void render();
S_Tingle 16:37d98c281eb3 23 void startScreen();
S_Tingle 22:8e38efeae0c9 24 bool gameWin();
S_Tingle 5:e6cb6fda5b37 25
S_Tingle 22:8e38efeae0c9 26 // functions //
S_Tingle 22:8e38efeae0c9 27 int main()
S_Tingle 22:8e38efeae0c9 28 {
S_Tingle 22:8e38efeae0c9 29 int fps = 30; // set frames per second
S_Tingle 22:8e38efeae0c9 30 lcd.setContrast(0.4); // set contrast
S_Tingle 22:8e38efeae0c9 31 lcd.setBrightness(1); // set brightness
S_Tingle 21:7d4827af00d6 32
S_Tingle 22:8e38efeae0c9 33 init(); // initialises all initial variables
S_Tingle 22:8e38efeae0c9 34 startScreen(); // displays start screen until start pressed
S_Tingle 22:8e38efeae0c9 35 wait(1.0f/fps); // sets wait between next frame
S_Tingle 22:8e38efeae0c9 36
S_Tingle 22:8e38efeae0c9 37 // game loop //
S_Tingle 22:8e38efeae0c9 38 while (1) {
S_Tingle 22:8e38efeae0c9 39 game.UI(lcd, pad); // displays the menus
S_Tingle 22:8e38efeae0c9 40 game.init();
S_Tingle 24:7770c7f27cdc 41 int health = game.get_health();
S_Tingle 5:e6cb6fda5b37 42
S_Tingle 22:8e38efeae0c9 43 // condition to allow for returning to //
S_Tingle 22:8e38efeae0c9 44 // main menu on win or loss //
S_Tingle 24:7770c7f27cdc 45 while (health > 0) {
S_Tingle 22:8e38efeae0c9 46 render();
S_Tingle 22:8e38efeae0c9 47 wait(1.0f/fps);
S_Tingle 24:7770c7f27cdc 48 health = game.get_health();
S_Tingle 22:8e38efeae0c9 49 }
S_Tingle 22:8e38efeae0c9 50 }
S_Tingle 5:e6cb6fda5b37 51 }
S_Tingle 26:3652bc2fe3fc 52
S_Tingle 22:8e38efeae0c9 53 // initialises gamepad and lcd //
S_Tingle 22:8e38efeae0c9 54 void init()
S_Tingle 22:8e38efeae0c9 55 {
S_Tingle 22:8e38efeae0c9 56 lcd.init();
S_Tingle 22:8e38efeae0c9 57 pad.init();
S_Tingle 5:e6cb6fda5b37 58 }
S_Tingle 16:37d98c281eb3 59
S_Tingle 22:8e38efeae0c9 60 // updates all sprites and updates all movements //
S_Tingle 22:8e38efeae0c9 61 // and conditional values every frame //
S_Tingle 22:8e38efeae0c9 62 void render()
S_Tingle 22:8e38efeae0c9 63 {
S_Tingle 22:8e38efeae0c9 64 lcd.clear();
S_Tingle 22:8e38efeae0c9 65 game.direc(pad);
S_Tingle 22:8e38efeae0c9 66 game.drawSprite(lcd);
S_Tingle 22:8e38efeae0c9 67 game.movement(lcd, pad);
S_Tingle 22:8e38efeae0c9 68 game.collect(lcd, pad);
S_Tingle 22:8e38efeae0c9 69 game.win(lcd);
S_Tingle 22:8e38efeae0c9 70 game.damage(lcd, pad);
S_Tingle 22:8e38efeae0c9 71 game.death(lcd);
S_Tingle 22:8e38efeae0c9 72 game.display_health(lcd);
S_Tingle 22:8e38efeae0c9 73 lcd.refresh();
S_Tingle 22:8e38efeae0c9 74 }
S_Tingle 22:8e38efeae0c9 75
S_Tingle 22:8e38efeae0c9 76 // start screen with 3 frames //
S_Tingle 22:8e38efeae0c9 77 void startScreen()
S_Tingle 22:8e38efeae0c9 78 {
S_Tingle 22:8e38efeae0c9 79 // until start pressed 3 frames will loop //
S_Tingle 22:8e38efeae0c9 80 while (pad.check_event(Gamepad::START_PRESSED) == false) {
S_Tingle 22:8e38efeae0c9 81 lcd.clear();
S_Tingle 22:8e38efeae0c9 82 lcd.drawSprite(0,0,48,84,(int *)start_01);
S_Tingle 22:8e38efeae0c9 83 lcd.refresh();
S_Tingle 22:8e38efeae0c9 84 wait(0.5);
S_Tingle 22:8e38efeae0c9 85 lcd.drawSprite(0,0,48,84,(int *)start_02);
S_Tingle 22:8e38efeae0c9 86 lcd.refresh();
S_Tingle 22:8e38efeae0c9 87 wait(0.5);
S_Tingle 22:8e38efeae0c9 88 lcd.drawSprite(0,0,48,84,(int *)start_03);
S_Tingle 22:8e38efeae0c9 89 lcd.refresh();
S_Tingle 22:8e38efeae0c9 90 wait(0.5);
S_Tingle 22:8e38efeae0c9 91 }
S_Tingle 16:37d98c281eb3 92 }