ELEC2645 (2019/20) / Mbed 2 deprecated ll17l2b

Dependencies:   mbed

Committer:
louisberard
Date:
Wed May 27 10:24:21 2020 +0000
Revision:
2:d14bccec9948
Parent:
1:5b7c6b79a1c6
Child:
4:fe668b8cbd3e
final submission (with correct project name)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
louisberard 1:5b7c6b79a1c6 1 #include "DodgeEngine.h"
louisberard 1:5b7c6b79a1c6 2
louisberard 1:5b7c6b79a1c6 3 DodgeEngine::DodgeEngine(){
louisberard 1:5b7c6b79a1c6 4 //initialise score and boat position
louisberard 1:5b7c6b79a1c6 5 player_score = 0;
louisberard 1:5b7c6b79a1c6 6 y_boat = 24;
louisberard 1:5b7c6b79a1c6 7 x_boat = 76;
louisberard 1:5b7c6b79a1c6 8
louisberard 1:5b7c6b79a1c6 9 }
louisberard 1:5b7c6b79a1c6 10 DodgeEngine::~DodgeEngine(){}
louisberard 1:5b7c6b79a1c6 11
louisberard 1:5b7c6b79a1c6 12 //function which holds the games logic
louisberard 1:5b7c6b79a1c6 13 void DodgeEngine::logic(N5110 &lcd, Gamepad &pad)
louisberard 1:5b7c6b79a1c6 14 {
louisberard 1:5b7c6b79a1c6 15 draw_screen(lcd);
louisberard 1:5b7c6b79a1c6 16 player_movements(lcd, pad);
louisberard 1:5b7c6b79a1c6 17 boat_logic(lcd, pad);
louisberard 1:5b7c6b79a1c6 18 }
louisberard 1:5b7c6b79a1c6 19 //Function for the boats logic
louisberard 1:5b7c6b79a1c6 20 void DodgeEngine::boat_logic(N5110 &lcd, Gamepad &pad)
louisberard 1:5b7c6b79a1c6 21 {
louisberard 1:5b7c6b79a1c6 22
louisberard 1:5b7c6b79a1c6 23 o1.set_y_boat(y_boat);
louisberard 1:5b7c6b79a1c6 24 o1.set_x_boat(x_boat);
louisberard 1:5b7c6b79a1c6 25 o1.sprite(lcd);
louisberard 1:5b7c6b79a1c6 26 boat_respawn(pad); //respawns the boat when it hits the other side of the screen
louisberard 1:5b7c6b79a1c6 27 }
louisberard 1:5b7c6b79a1c6 28
louisberard 1:5b7c6b79a1c6 29
louisberard 1:5b7c6b79a1c6 30 void DodgeEngine::draw_screen(N5110 &lcd)
louisberard 1:5b7c6b79a1c6 31 {
louisberard 1:5b7c6b79a1c6 32 lcd.clear();
louisberard 1:5b7c6b79a1c6 33 lcd.drawLine(0,7, 84,7,1); //Top edge of display
louisberard 1:5b7c6b79a1c6 34 lcd.drawLine(0,47, 83,47,1); //Bottom edge of display
louisberard 1:5b7c6b79a1c6 35 lcd.printString("Dodge the boat",1,0);
louisberard 1:5b7c6b79a1c6 36 }
louisberard 1:5b7c6b79a1c6 37 void DodgeEngine::player_movements(N5110 &lcd, Gamepad &pad)
louisberard 1:5b7c6b79a1c6 38 {
louisberard 1:5b7c6b79a1c6 39 swimmer.sprite(lcd);
louisberard 1:5b7c6b79a1c6 40 swimmer.get_x1();
louisberard 1:5b7c6b79a1c6 41 swimmer.get_y1();
louisberard 1:5b7c6b79a1c6 42 swimmer.movement(pad);
louisberard 1:5b7c6b79a1c6 43
louisberard 1:5b7c6b79a1c6 44 }
louisberard 1:5b7c6b79a1c6 45
louisberard 1:5b7c6b79a1c6 46 void DodgeEngine::boat_respawn(Gamepad &pad)
louisberard 1:5b7c6b79a1c6 47 {
louisberard 1:5b7c6b79a1c6 48 x_boat += -2; //boat speed
louisberard 1:5b7c6b79a1c6 49
louisberard 1:5b7c6b79a1c6 50 //If statement which respawns boat (moves boat back to start of the screen)
louisberard 1:5b7c6b79a1c6 51 if(x_boat < 0) {
louisberard 1:5b7c6b79a1c6 52 x_boat = 76;
louisberard 1:5b7c6b79a1c6 53 player_score += 1;
louisberard 1:5b7c6b79a1c6 54 //y_boat gets a random position to move the boat back to
louisberard 1:5b7c6b79a1c6 55 y_boat = ((rand()%(48))+8);
louisberard 1:5b7c6b79a1c6 56 }
louisberard 1:5b7c6b79a1c6 57 }
louisberard 1:5b7c6b79a1c6 58
louisberard 1:5b7c6b79a1c6 59 bool DodgeEngine::state(N5110 &lcd)
louisberard 1:5b7c6b79a1c6 60 {
louisberard 1:5b7c6b79a1c6 61 //checks if collision has occured and ends the game loop if it has
louisberard 1:5b7c6b79a1c6 62 if(cd.Collision(lcd, x_boat, y_boat)== 1) {
louisberard 1:5b7c6b79a1c6 63 return true;}
louisberard 1:5b7c6b79a1c6 64 else{return false;
louisberard 1:5b7c6b79a1c6 65 }
louisberard 1:5b7c6b79a1c6 66 }
louisberard 1:5b7c6b79a1c6 67 //Game over screen
louisberard 1:5b7c6b79a1c6 68 void DodgeEngine::game_over(N5110 &lcd, Gamepad &pad)
louisberard 1:5b7c6b79a1c6 69 {
louisberard 1:5b7c6b79a1c6 70
louisberard 1:5b7c6b79a1c6 71 lcd.clear();
louisberard 1:5b7c6b79a1c6 72 lcd.printString("SMASH",30,1);
louisberard 1:5b7c6b79a1c6 73 lcd.printString("Score: ", 0,3);
louisberard 1:5b7c6b79a1c6 74 char score_buffer[14];
louisberard 1:5b7c6b79a1c6 75 sprintf(score_buffer,"%2d",player_score);
louisberard 1:5b7c6b79a1c6 76 lcd.printString(score_buffer,42,3);
louisberard 1:5b7c6b79a1c6 77 lcd.refresh();
louisberard 1:5b7c6b79a1c6 78 }