Rex Raj / Mbed 2 deprecated el17rrrs

Dependencies:   mbed Gamepad N5110 mbed-rtos

Committer:
RexRoshan
Date:
Thu Apr 25 16:31:27 2019 +0000
Revision:
3:bf9624e5b0c3
Parent:
2:b5c1bb7a39de
Child:
4:4d673fb2d9dc
The game is finished;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RexRoshan 0:99fa5a619081 1 #include "GameEngine.h"
RexRoshan 0:99fa5a619081 2
RexRoshan 0:99fa5a619081 3 GameEngine::GameEngine()
RexRoshan 0:99fa5a619081 4 {
RexRoshan 0:99fa5a619081 5
RexRoshan 0:99fa5a619081 6 }
RexRoshan 0:99fa5a619081 7
RexRoshan 0:99fa5a619081 8 GameEngine::~GameEngine()
RexRoshan 0:99fa5a619081 9 {
RexRoshan 0:99fa5a619081 10
RexRoshan 0:99fa5a619081 11 }
RexRoshan 0:99fa5a619081 12 int backgrounds [48][84] = {
RexRoshan 0:99fa5a619081 13
RexRoshan 0:99fa5a619081 14 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 15 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 16 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 17 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 18 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 19 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 20 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 21 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 22 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 23 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 24 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 25 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 26 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 27 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 28 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 29 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 30 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 31 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 32 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 33 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 34 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 35 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 36 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 37 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 38 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 39 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 40 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 41 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 42 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 43 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 44 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 45 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 46 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 47 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 48 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 49 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 50 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 51 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 52 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 53 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 54 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 55 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 56 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 57 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 58 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 59 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 60 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 61 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 62
RexRoshan 0:99fa5a619081 63 };
RexRoshan 0:99fa5a619081 64 int r [3][13] = {
RexRoshan 0:99fa5a619081 65
RexRoshan 0:99fa5a619081 66 {0,1,0,0,0,0,0,0,0,0,0,1,0},
RexRoshan 0:99fa5a619081 67 {1,1,1,0,0,0,0,0,0,0,1,1,1},
RexRoshan 0:99fa5a619081 68 {0,1,0,0,1,1,1,1,1,0,0,1,0},
RexRoshan 0:99fa5a619081 69
RexRoshan 0:99fa5a619081 70 };
RexRoshan 0:99fa5a619081 71
RexRoshan 0:99fa5a619081 72 int e [3][3] = {
RexRoshan 0:99fa5a619081 73
RexRoshan 0:99fa5a619081 74 {0,1,0},
RexRoshan 0:99fa5a619081 75 {1,1,1},
RexRoshan 0:99fa5a619081 76 {0,1,0},
RexRoshan 0:99fa5a619081 77
RexRoshan 0:99fa5a619081 78 };
RexRoshan 0:99fa5a619081 79
RexRoshan 0:99fa5a619081 80 int x [3][19] = {
RexRoshan 0:99fa5a619081 81
RexRoshan 0:99fa5a619081 82 {0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 83 {0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 84 {1,1,1,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1},
RexRoshan 0:99fa5a619081 85
RexRoshan 0:99fa5a619081 86 };
RexRoshan 0:99fa5a619081 87
RexRoshan 0:99fa5a619081 88 int explosion [23] [23] = {
RexRoshan 0:99fa5a619081 89
RexRoshan 0:99fa5a619081 90 {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 91 {0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 92 {0,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 93 {0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0},
RexRoshan 0:99fa5a619081 94 {0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0},
RexRoshan 0:99fa5a619081 95 {0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},
RexRoshan 0:99fa5a619081 96 {0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0},
RexRoshan 0:99fa5a619081 97 {0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0},
RexRoshan 0:99fa5a619081 98 {0,1,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0},
RexRoshan 0:99fa5a619081 99 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0},
RexRoshan 0:99fa5a619081 100 {0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
RexRoshan 0:99fa5a619081 101 {0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1},
RexRoshan 0:99fa5a619081 102 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1},
RexRoshan 0:99fa5a619081 103 {0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 104 {0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 105 {0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0},
RexRoshan 0:99fa5a619081 106 {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0},
RexRoshan 0:99fa5a619081 107 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},
RexRoshan 0:99fa5a619081 108 {0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,0,0},
RexRoshan 0:99fa5a619081 109 {0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,0,0,0},
RexRoshan 0:99fa5a619081 110 {0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0},
RexRoshan 0:99fa5a619081 111 {0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 112 {0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0},
RexRoshan 0:99fa5a619081 113
RexRoshan 0:99fa5a619081 114 };
RexRoshan 0:99fa5a619081 115
RexRoshan 1:45493d1d0689 116 void GameEngine::init(int spacecraft_xpos,int spacecraft_ypos,int enemy_xpos, int enemy_ypos,int enemy2_xpos, int enemy2_ypos,int enemy3_xpos, int enemy3_ypos,int beam_size,int beam2_size, int speed)
RexRoshan 0:99fa5a619081 117 {
RexRoshan 2:b5c1bb7a39de 118 // initialise the game parameters
RexRoshan 2:b5c1bb7a39de 119 _spacecraft_xpos = spacecraft_xpos;
RexRoshan 2:b5c1bb7a39de 120 _spacecraft_ypos = spacecraft_ypos;
RexRoshan 0:99fa5a619081 121
RexRoshan 2:b5c1bb7a39de 122 _enemy_xpos = enemy_xpos;
RexRoshan 2:b5c1bb7a39de 123 _enemy_ypos = enemy_ypos;
RexRoshan 0:99fa5a619081 124
RexRoshan 2:b5c1bb7a39de 125 _enemy2_xpos = enemy2_xpos;
RexRoshan 2:b5c1bb7a39de 126 _enemy2_ypos = enemy2_ypos;
RexRoshan 1:45493d1d0689 127
RexRoshan 2:b5c1bb7a39de 128 _enemy3_xpos = enemy3_xpos;
RexRoshan 2:b5c1bb7a39de 129 _enemy3_ypos = enemy3_ypos;
RexRoshan 0:99fa5a619081 130
RexRoshan 0:99fa5a619081 131
RexRoshan 2:b5c1bb7a39de 132 _beam_size = beam_size; // beam size for 1st and 3rd enemy
RexRoshan 2:b5c1bb7a39de 133 _beam2_size = beam2_size; // beam size for 2nd enemy
RexRoshan 2:b5c1bb7a39de 134 _speed = speed; // Speed of the enemy travelling
RexRoshan 0:99fa5a619081 135
RexRoshan 0:99fa5a619081 136
RexRoshan 2:b5c1bb7a39de 137 _p1x = GAP;
RexRoshan 0:99fa5a619081 138 // x position on screen - WIDTH is defined in N5110.h
RexRoshan 2:b5c1bb7a39de 139 _e1a = WIDTH-_enemy_xpos; //enemy_xpos = 12
RexRoshan 2:b5c1bb7a39de 140 // y position on screen - HEIGHT is defined in N5110.h
RexRoshan 2:b5c1bb7a39de 141 _e1b = HEIGHT/2-_enemy_ypos; //enemy_ypos = 4
RexRoshan 0:99fa5a619081 142
RexRoshan 2:b5c1bb7a39de 143 _e2a = WIDTH-_enemy2_xpos; //enemy2_xpos = 12
RexRoshan 2:b5c1bb7a39de 144 _e21b = HEIGHT/2 +_enemy2_ypos; //enemy2_ypos = 10
RexRoshan 2:b5c1bb7a39de 145 _e22b = HEIGHT/2 -_enemy2_ypos;
RexRoshan 1:45493d1d0689 146
RexRoshan 2:b5c1bb7a39de 147 _e3a = WIDTH-_enemy3_xpos; //enemy3_xpos = 20
RexRoshan 2:b5c1bb7a39de 148 _e3b = HEIGHT/2 -_enemy3_ypos; //enemy3_ypos = 7
RexRoshan 1:45493d1d0689 149 _e3c = WIDTH-_enemy3_xpos - 12;
RexRoshan 1:45493d1d0689 150 _e3d = HEIGHT/2 + _enemy3_ypos;;
RexRoshan 1:45493d1d0689 151 _e3f = HEIGHT/2 - _enemy3_ypos;;
RexRoshan 1:45493d1d0689 152
RexRoshan 2:b5c1bb7a39de 153 // Initialising the player's spacecraft and all enemy spacecrafts
RexRoshan 2:b5c1bb7a39de 154 _p1.init(_spacecraft_xpos,_spacecraft_ypos);
RexRoshan 2:b5c1bb7a39de 155 _e1.init(_e1a,_e1b);
RexRoshan 2:b5c1bb7a39de 156 _e21.init(_e2a,_e21b,_speed);
RexRoshan 2:b5c1bb7a39de 157 _e22.init(_e2a,_e22b,_speed);
RexRoshan 2:b5c1bb7a39de 158 _e3.init(_e3a,_e3b,_e3c,_e3d,_e3c,_e3f,_speed);
RexRoshan 2:b5c1bb7a39de 159 // Initialising the stage of the game
RexRoshan 2:b5c1bb7a39de 160 _stage = 0;
RexRoshan 0:99fa5a619081 161
RexRoshan 0:99fa5a619081 162 }
RexRoshan 0:99fa5a619081 163
RexRoshan 0:99fa5a619081 164 void GameEngine::read_input(Gamepad &pad)
RexRoshan 0:99fa5a619081 165 {
RexRoshan 2:b5c1bb7a39de 166 _d = pad.get_direction(); // Get the direction of the joystick
RexRoshan 2:b5c1bb7a39de 167 _mag = pad.get_mag(); // Get the magnitude value
RexRoshan 2:b5c1bb7a39de 168 _R = pad.check_event(Gamepad::R_PRESSED); // Check if the R button is being pressed
RexRoshan 3:bf9624e5b0c3 169 _L = pad.check_event(Gamepad::L_PRESSED); // Check if the L button is being pressed
RexRoshan 0:99fa5a619081 170
RexRoshan 0:99fa5a619081 171 }
RexRoshan 0:99fa5a619081 172
RexRoshan 2:b5c1bb7a39de 173 void GameEngine::draw_mission_one(Gamepad &pad,N5110 &lcd)
RexRoshan 0:99fa5a619081 174 {
RexRoshan 0:99fa5a619081 175 // draw the background of the game
RexRoshan 0:99fa5a619081 176 lcd.drawSprite(0,0,48,84,(int *)backgrounds);
RexRoshan 2:b5c1bb7a39de 177 // draw the easter egg of the game
RexRoshan 0:99fa5a619081 178 lcd.drawSprite(6,4,3,13,(int *)r);
RexRoshan 0:99fa5a619081 179 //health
RexRoshan 0:99fa5a619081 180 draw_enemy_health(lcd);
RexRoshan 0:99fa5a619081 181 draw_spacecraft_health(pad);
RexRoshan 2:b5c1bb7a39de 182 // player spacecraft
RexRoshan 0:99fa5a619081 183 _p1.character(lcd);
RexRoshan 2:b5c1bb7a39de 184 // first enemy
RexRoshan 0:99fa5a619081 185 _e1.enemy(lcd);
RexRoshan 2:b5c1bb7a39de 186 // player spacecraft beam
RexRoshan 0:99fa5a619081 187 _beam.draw(lcd);
RexRoshan 2:b5c1bb7a39de 188 // enemy spacecraft beam
RexRoshan 0:99fa5a619081 189 _enemybeam.draw(lcd);
RexRoshan 0:99fa5a619081 190
RexRoshan 0:99fa5a619081 191 }
RexRoshan 2:b5c1bb7a39de 192 void GameEngine::draw_mission_two(Gamepad &pad,N5110 &lcd)
RexRoshan 0:99fa5a619081 193 {
RexRoshan 2:b5c1bb7a39de 194 // draw the background of the game
RexRoshan 0:99fa5a619081 195 lcd.drawSprite(0,0,48,84,(int *)backgrounds);
RexRoshan 2:b5c1bb7a39de 196 // draw the easter egg of the game
RexRoshan 0:99fa5a619081 197 lcd.drawSprite(6,4,3,3,(int *)e);
RexRoshan 2:b5c1bb7a39de 198 //health
RexRoshan 0:99fa5a619081 199 draw_spacecraft_health(pad);
RexRoshan 0:99fa5a619081 200 draw_enemy21_health(lcd);
RexRoshan 0:99fa5a619081 201 draw_enemy22_health(lcd);
RexRoshan 2:b5c1bb7a39de 202 // player spacecraft
RexRoshan 0:99fa5a619081 203 _p1.character(lcd);
RexRoshan 2:b5c1bb7a39de 204 // second enemy
RexRoshan 0:99fa5a619081 205 _e21.enemy2(lcd);
RexRoshan 0:99fa5a619081 206 _e22.enemy2(lcd);
RexRoshan 2:b5c1bb7a39de 207 // player spacecraft beam
RexRoshan 0:99fa5a619081 208 _beam.draw(lcd);
RexRoshan 2:b5c1bb7a39de 209 // second enemy spacecraft beam
RexRoshan 0:99fa5a619081 210 _enemybeam2.draw(lcd);
RexRoshan 0:99fa5a619081 211
RexRoshan 0:99fa5a619081 212 }
RexRoshan 0:99fa5a619081 213
RexRoshan 2:b5c1bb7a39de 214 void GameEngine::draw_mission_three(Gamepad &pad,N5110 &lcd)
RexRoshan 1:45493d1d0689 215 {
RexRoshan 2:b5c1bb7a39de 216 // draw the background of the game
RexRoshan 1:45493d1d0689 217 lcd.drawSprite(0,0,48,84,(int *)backgrounds);
RexRoshan 2:b5c1bb7a39de 218 // draw the easter egg of the game
RexRoshan 2:b5c1bb7a39de 219 lcd.drawSprite(6,4,3,19,(int *)x);
RexRoshan 2:b5c1bb7a39de 220 //health
RexRoshan 1:45493d1d0689 221 draw_spacecraft_health(pad);
RexRoshan 1:45493d1d0689 222 draw_enemyboss_health(lcd);
RexRoshan 2:b5c1bb7a39de 223 // player spacecraft
RexRoshan 1:45493d1d0689 224 _p1.character(lcd);
RexRoshan 2:b5c1bb7a39de 225 // third and final enemy
RexRoshan 1:45493d1d0689 226 _e3.enemyboss(lcd);
RexRoshan 2:b5c1bb7a39de 227 // player spacecraft beam
RexRoshan 1:45493d1d0689 228 _beam.draw(lcd);
RexRoshan 2:b5c1bb7a39de 229 // third enemy spacecraft beam
RexRoshan 1:45493d1d0689 230 _enemybeam3.draw(lcd);
RexRoshan 1:45493d1d0689 231
RexRoshan 1:45493d1d0689 232 }
RexRoshan 1:45493d1d0689 233
RexRoshan 2:b5c1bb7a39de 234 void GameEngine::update_mission_one(Gamepad &pad,N5110 &lcd)
RexRoshan 0:99fa5a619081 235 {
RexRoshan 2:b5c1bb7a39de 236 check_playerbeam_collision(pad); // Check if L/R is being pressed to initiate the player beam
RexRoshan 2:b5c1bb7a39de 237 check_enemybeam_collisions(pad); // Check if first enemy's beam has passed the wall to initiate a new beam
RexRoshan 2:b5c1bb7a39de 238 // updating spacecraft and enemy before checking collisions so that
RexRoshan 2:b5c1bb7a39de 239 // it displays the right value
RexRoshan 2:b5c1bb7a39de 240 _p1.update(_d,_mag); // Player spacecraft movement update
RexRoshan 2:b5c1bb7a39de 241 _beam.update(); // Player spacecraft's beam update
RexRoshan 2:b5c1bb7a39de 242
RexRoshan 2:b5c1bb7a39de 243 // The enemy spacecraft is stationery in mission one
RexRoshan 2:b5c1bb7a39de 244 _enemybeam.update(); // Enemy spacecraft's beam update
RexRoshan 2:b5c1bb7a39de 245
RexRoshan 2:b5c1bb7a39de 246 check_enemy_collisions(pad); // Check if the player spacecraft beam collides with the enemy spacecraft
RexRoshan 2:b5c1bb7a39de 247 check_spacecraft_collisions(pad); // Check if the enemy spacecraft beam collides with the player spacecraft
RexRoshan 2:b5c1bb7a39de 248
RexRoshan 2:b5c1bb7a39de 249 // Animations and sound effect for the both the player's and enemy' spacecraft when they are dead
RexRoshan 0:99fa5a619081 250 spacecraft_dead(lcd,pad);
RexRoshan 0:99fa5a619081 251 enemy_dead(lcd,pad);
RexRoshan 2:b5c1bb7a39de 252 // Check if mission one had been failed or pass to provide appropriate animation and sound effect
RexRoshan 0:99fa5a619081 253 check_mission_one(pad);
RexRoshan 2:b5c1bb7a39de 254
RexRoshan 0:99fa5a619081 255 }
RexRoshan 0:99fa5a619081 256
RexRoshan 2:b5c1bb7a39de 257 void GameEngine::update_mission_two(Gamepad &pad,N5110 &lcd)
RexRoshan 0:99fa5a619081 258 {
RexRoshan 2:b5c1bb7a39de 259 check_playerbeam_collision(pad); // Check if L/R is being pressed to initiate the player beam
RexRoshan 2:b5c1bb7a39de 260 check_enemybeam2_collisions(pad); // Check if first enemy's beam has passed the wall to initiate a new beam
RexRoshan 2:b5c1bb7a39de 261 // updating spacecraft and enemy before checking collisions so that
RexRoshan 2:b5c1bb7a39de 262 // it displays the right value
RexRoshan 2:b5c1bb7a39de 263 _p1.update(_d,_mag); // Player spacecraft movement update
RexRoshan 2:b5c1bb7a39de 264 _beam.update(); // Player spacecraft's beam update
RexRoshan 2:b5c1bb7a39de 265
RexRoshan 2:b5c1bb7a39de 266 _enemybeam2.update(); // Enemy spacecraft's beam update
RexRoshan 2:b5c1bb7a39de 267 _e21.update(); // Second-one enemy spacecraft movement update
RexRoshan 2:b5c1bb7a39de 268 _e22.update(); // Second-two enemy spacecraft movement update
RexRoshan 2:b5c1bb7a39de 269
RexRoshan 2:b5c1bb7a39de 270 check_enemy2_collisions(pad); // Check if the player spacecraft beam collides with the enemy spacecraft
RexRoshan 2:b5c1bb7a39de 271 check_spacecraft2_collisions(pad); // Check if the enemy spacecraft beam collides with the player spacecraft
RexRoshan 2:b5c1bb7a39de 272 check_wall_collisions(pad); // Check if enemy spacecraft hits the top and bottom wall to bounce off
RexRoshan 2:b5c1bb7a39de 273
RexRoshan 2:b5c1bb7a39de 274 // Animations and sound effect for the both the player's and enemy' spacecraft when they are dead
RexRoshan 0:99fa5a619081 275 spacecraft2_dead(lcd,pad);
RexRoshan 0:99fa5a619081 276 enemy2_dead(lcd,pad);
RexRoshan 2:b5c1bb7a39de 277 // Check if mission two had been failed or pass to provide appropriate animation and sound effect
RexRoshan 0:99fa5a619081 278 check_mission_two(pad);
RexRoshan 0:99fa5a619081 279
RexRoshan 0:99fa5a619081 280 }
RexRoshan 0:99fa5a619081 281
RexRoshan 2:b5c1bb7a39de 282 void GameEngine::update_mission_three(Gamepad &pad,N5110 &lcd)
RexRoshan 1:45493d1d0689 283 {
RexRoshan 2:b5c1bb7a39de 284 check_playerbeam_collision(pad);
RexRoshan 1:45493d1d0689 285 check_enemybeam3_collisions(pad);
RexRoshan 2:b5c1bb7a39de 286
RexRoshan 2:b5c1bb7a39de 287 _p1.update(_d,_mag); // Player spacecraft movement update
RexRoshan 2:b5c1bb7a39de 288 _beam.update(); // Player spacecraft beam update
RexRoshan 2:b5c1bb7a39de 289 _enemybeam3.update(); // Third enemy's spacecraft's beam update
RexRoshan 2:b5c1bb7a39de 290 _e3.update(); // Third enemy spacecraft movement update
RexRoshan 2:b5c1bb7a39de 291 check_enemy3_collisions(pad); // Check if the player spacecraft beam collides with the third enemy spacecraft
RexRoshan 2:b5c1bb7a39de 292 check_spacecraft3_collisions(pad); // Check if the third enemy spacecraft beam collides with the player spacecraft
RexRoshan 2:b5c1bb7a39de 293 check_wall2_collisions(pad); // Check if enemy spacecraft hits the top,bottom, wall to bounce off
RexRoshan 2:b5c1bb7a39de 294 // Animations and sound effect for the both the player's and enemy' spacecraft
RexRoshan 1:45493d1d0689 295 spacecraft3_dead(lcd,pad);
RexRoshan 1:45493d1d0689 296 enemy3_dead(lcd,pad);
RexRoshan 2:b5c1bb7a39de 297 // Check if mission three had been failed or pass to provide appropriate animation and sound effect
RexRoshan 1:45493d1d0689 298 check_mission_three(pad);
RexRoshan 1:45493d1d0689 299
RexRoshan 1:45493d1d0689 300 }
RexRoshan 0:99fa5a619081 301 void GameEngine::check_enemy_collisions(Gamepad &pad)
RexRoshan 0:99fa5a619081 302 {
RexRoshan 2:b5c1bb7a39de 303 // read current enemy spacecraft's and player spacecraft's beam attributes
RexRoshan 0:99fa5a619081 304 Vector2D beam_pos = _beam.get_pos();
RexRoshan 0:99fa5a619081 305 Vector2D e1_pos = _e1.get_enemy_pos();
RexRoshan 0:99fa5a619081 306
RexRoshan 2:b5c1bb7a39de 307 // see if player's spacecraft beam has hit the enemy's spacecraft by checking for overlaps
RexRoshan 0:99fa5a619081 308 if (
RexRoshan 0:99fa5a619081 309 (beam_pos.y >= e1_pos.y) && //top
RexRoshan 0:99fa5a619081 310 (beam_pos.y <= e1_pos.y + 7) && //bottom
RexRoshan 0:99fa5a619081 311 (beam_pos.x + _beam_size >= _e1a) && //left
RexRoshan 0:99fa5a619081 312 (beam_pos.x + _beam_size <= _e1a + 8) //right
RexRoshan 0:99fa5a619081 313 ) {
RexRoshan 2:b5c1bb7a39de 314 // add first enemy health
RexRoshan 0:99fa5a619081 315 _e1.add_health();
RexRoshan 1:45493d1d0689 316 spacebeam = true;
RexRoshan 2:b5c1bb7a39de 317 // audio feedback
RexRoshan 0:99fa5a619081 318 pad.tone(1000.0,0.1);
RexRoshan 0:99fa5a619081 319 }
RexRoshan 0:99fa5a619081 320
RexRoshan 0:99fa5a619081 321 // write new attributes
RexRoshan 0:99fa5a619081 322 _beam.set_pos(beam_pos);
RexRoshan 0:99fa5a619081 323 }
RexRoshan 0:99fa5a619081 324
RexRoshan 0:99fa5a619081 325 void GameEngine::check_enemy2_collisions(Gamepad &pad)
RexRoshan 0:99fa5a619081 326 {
RexRoshan 2:b5c1bb7a39de 327 // read curent player spacecraft's beam attributes
RexRoshan 0:99fa5a619081 328 Vector2D beam_pos = _beam.get_pos();
RexRoshan 2:b5c1bb7a39de 329 // check e21 first
RexRoshan 0:99fa5a619081 330 Vector2D e21_pos = _e21.get_enemy21_pos();
RexRoshan 0:99fa5a619081 331
RexRoshan 2:b5c1bb7a39de 332 // see if player's spacecraft beam has hit the enemy's spacecraft by checking for overlaps
RexRoshan 0:99fa5a619081 333 if (
RexRoshan 0:99fa5a619081 334 (beam_pos.y >= e21_pos.y) && //top
RexRoshan 0:99fa5a619081 335 (beam_pos.y <= e21_pos.y + 7) && //bottom
RexRoshan 0:99fa5a619081 336 (beam_pos.x + _beam_size >= _e2a) && //left
RexRoshan 0:99fa5a619081 337 (beam_pos.x + _beam_size <= _e2a + 7) //right
RexRoshan 0:99fa5a619081 338 ) {
RexRoshan 2:b5c1bb7a39de 339 // add health to first second level enemy
RexRoshan 2:b5c1bb7a39de 340 _e21.add_health();
RexRoshan 2:b5c1bb7a39de 341 // set boolean spacebeam true
RexRoshan 2:b5c1bb7a39de 342 spacebeam = true;
RexRoshan 0:99fa5a619081 343 // audio feedback
RexRoshan 0:99fa5a619081 344 pad.tone(1000.0,0.1);
RexRoshan 0:99fa5a619081 345 }
RexRoshan 2:b5c1bb7a39de 346 // check e22 next
RexRoshan 2:b5c1bb7a39de 347 Vector2D e22_pos = _e22.get_enemy22_pos();
RexRoshan 2:b5c1bb7a39de 348
RexRoshan 0:99fa5a619081 349 if (
RexRoshan 0:99fa5a619081 350 (beam_pos.y >= e22_pos.y) && //top
RexRoshan 0:99fa5a619081 351 (beam_pos.y <= e22_pos.y + 7) && //bottom
RexRoshan 0:99fa5a619081 352 (beam_pos.x + _beam_size >= _e2a) && //left
RexRoshan 0:99fa5a619081 353 (beam_pos.x + _beam_size <= _e2a + 7) //right
RexRoshan 0:99fa5a619081 354 ) {
RexRoshan 2:b5c1bb7a39de 355 // add health to second, second level enemy
RexRoshan 2:b5c1bb7a39de 356 _e22.add_health();
RexRoshan 2:b5c1bb7a39de 357 // set boolean spacebeam true
RexRoshan 2:b5c1bb7a39de 358 spacebeam = true;
RexRoshan 0:99fa5a619081 359 // audio feedback
RexRoshan 1:45493d1d0689 360 pad.tone(1000.0,0.1);
RexRoshan 1:45493d1d0689 361 }
RexRoshan 2:b5c1bb7a39de 362
RexRoshan 1:45493d1d0689 363 // write new attributes
RexRoshan 1:45493d1d0689 364 _beam.set_pos(beam_pos);
RexRoshan 1:45493d1d0689 365 }
RexRoshan 1:45493d1d0689 366
RexRoshan 1:45493d1d0689 367 void GameEngine::check_enemy3_collisions(Gamepad &pad)
RexRoshan 1:45493d1d0689 368 {
RexRoshan 2:b5c1bb7a39de 369 // read curent player's spacecraft beam attributes
RexRoshan 1:45493d1d0689 370 Vector2D beam_pos = _beam.get_pos();
RexRoshan 1:45493d1d0689 371
RexRoshan 2:b5c1bb7a39de 372 // check e3boss first
RexRoshan 1:45493d1d0689 373 Vector2D e3boss_pos = _e3.get_enemyboss_pos();
RexRoshan 1:45493d1d0689 374
RexRoshan 2:b5c1bb7a39de 375 // see if player's spacecraft beam has hit the enemy's spacecraft by checking for overlaps
RexRoshan 1:45493d1d0689 376 if (
RexRoshan 1:45493d1d0689 377 (beam_pos.y >= e3boss_pos.y) && //top
RexRoshan 1:45493d1d0689 378 (beam_pos.y <= e3boss_pos.y + 12) && //bottom
RexRoshan 1:45493d1d0689 379 (beam_pos.x + _beam_size >= _e3a) && //left
RexRoshan 1:45493d1d0689 380 (beam_pos.x + _beam_size <= _e3a + 12) //right
RexRoshan 1:45493d1d0689 381 ) {
RexRoshan 2:b5c1bb7a39de 382 // add health to enemy boss
RexRoshan 2:b5c1bb7a39de 383 _e3.add_health_boss();
RexRoshan 2:b5c1bb7a39de 384 // set boolean spacebeam true
RexRoshan 2:b5c1bb7a39de 385 spacebeam = true;
RexRoshan 1:45493d1d0689 386 // audio feedback
RexRoshan 1:45493d1d0689 387 pad.tone(1000.0,0.1);
RexRoshan 1:45493d1d0689 388 }
RexRoshan 2:b5c1bb7a39de 389 // check e3enemy1 next
RexRoshan 2:b5c1bb7a39de 390 Vector2D e3enemy1_pos = _e3.get_enemy1_pos();
RexRoshan 2:b5c1bb7a39de 391
RexRoshan 1:45493d1d0689 392 if (
RexRoshan 1:45493d1d0689 393 (beam_pos.y >= e3enemy1_pos.y) && //top
RexRoshan 1:45493d1d0689 394 (beam_pos.y <= e3enemy1_pos.y + 6) && //bottom
RexRoshan 1:45493d1d0689 395 (beam_pos.x + _beam_size >= _e3c) && //left
RexRoshan 1:45493d1d0689 396 (beam_pos.x + _beam_size <= _e3c + 7) //right
RexRoshan 1:45493d1d0689 397 ) {
RexRoshan 2:b5c1bb7a39de 398 // add health to first third level enemy
RexRoshan 2:b5c1bb7a39de 399 _e3.add_health_enemy1();
RexRoshan 2:b5c1bb7a39de 400 // set boolean spacebeam true
RexRoshan 2:b5c1bb7a39de 401 spacebeam = true;
RexRoshan 1:45493d1d0689 402 // audio feedback
RexRoshan 1:45493d1d0689 403 pad.tone(1000.0,0.1);
RexRoshan 1:45493d1d0689 404 }
RexRoshan 2:b5c1bb7a39de 405 // check e3enemy2 next
RexRoshan 2:b5c1bb7a39de 406 Vector2D e3enemy2_pos = _e3.get_enemy2_pos();
RexRoshan 2:b5c1bb7a39de 407
RexRoshan 1:45493d1d0689 408 if (
RexRoshan 1:45493d1d0689 409 (beam_pos.y >= e3enemy2_pos.y) && //top
RexRoshan 1:45493d1d0689 410 (beam_pos.y <= e3enemy2_pos.y + 6) && //bottom
RexRoshan 1:45493d1d0689 411 (beam_pos.x + _beam_size >= _e3c) && //left
RexRoshan 1:45493d1d0689 412 (beam_pos.x + _beam_size <= _e3c + 7) //right
RexRoshan 1:45493d1d0689 413 ) {
RexRoshan 2:b5c1bb7a39de 414 // add health to second third level enemy
RexRoshan 1:45493d1d0689 415 _e3.add_health_enemy2();
RexRoshan 2:b5c1bb7a39de 416 // set boolean spacebeam true
RexRoshan 1:45493d1d0689 417 spacebeam = true;
RexRoshan 2:b5c1bb7a39de 418 // audio feedback
RexRoshan 0:99fa5a619081 419 pad.tone(1000.0,0.1);
RexRoshan 0:99fa5a619081 420 }
RexRoshan 0:99fa5a619081 421 // write new attributes
RexRoshan 0:99fa5a619081 422 _beam.set_pos(beam_pos);
RexRoshan 0:99fa5a619081 423 }
RexRoshan 0:99fa5a619081 424
RexRoshan 2:b5c1bb7a39de 425 void GameEngine::check_playerbeam_collision(Gamepad &pad)
RexRoshan 0:99fa5a619081 426 {
RexRoshan 2:b5c1bb7a39de 427 Vector2D p1_pos = _p1.get_pos(); // Get player's spacecraft position
RexRoshan 2:b5c1bb7a39de 428 Vector2D beam_pos = _beam.get_pos(); // Get player's spacecraft beam position
RexRoshan 2:b5c1bb7a39de 429
RexRoshan 2:b5c1bb7a39de 430 if((_R == true)|| (_L == true)){ //
RexRoshan 2:b5c1bb7a39de 431 // if (beam_pos.x + _beam_size > WIDTH || (spacebeam == true)){
RexRoshan 1:45493d1d0689 432 _beam.init(_beam_size,p1_pos.x,p1_pos.y);
RexRoshan 2:b5c1bb7a39de 433 _R = false;
RexRoshan 2:b5c1bb7a39de 434 _L = false;
RexRoshan 2:b5c1bb7a39de 435 // }
RexRoshan 0:99fa5a619081 436 }
RexRoshan 0:99fa5a619081 437 }
RexRoshan 0:99fa5a619081 438
RexRoshan 0:99fa5a619081 439 void GameEngine::check_enemybeam_collisions(Gamepad &pad)
RexRoshan 0:99fa5a619081 440 {
RexRoshan 0:99fa5a619081 441 Vector2D enemybeam_pos = _enemybeam.get_pos();
RexRoshan 0:99fa5a619081 442 // P2 has scored
RexRoshan 0:99fa5a619081 443 if ((_ebeam == true)||(enemybeam_pos.x - _beam_size < 0)) {
RexRoshan 0:99fa5a619081 444 _enemybeam.init(_beam_size,_e1a,_e1b);
RexRoshan 0:99fa5a619081 445 _ebeam = false;
RexRoshan 0:99fa5a619081 446 }
RexRoshan 0:99fa5a619081 447 }
RexRoshan 0:99fa5a619081 448
RexRoshan 0:99fa5a619081 449 void GameEngine::check_enemybeam2_collisions(Gamepad &pad)
RexRoshan 0:99fa5a619081 450 {
RexRoshan 0:99fa5a619081 451 Vector2D enemy21_pos = _e21.get_enemy21_pos();
RexRoshan 0:99fa5a619081 452 Vector2D enemy22_pos = _e22.get_enemy22_pos();
RexRoshan 0:99fa5a619081 453 Vector2D enemybeam21_pos = _enemybeam2.get_pos_21();
RexRoshan 0:99fa5a619081 454 Vector2D enemybeam22_pos = _enemybeam2.get_pos_22();
RexRoshan 0:99fa5a619081 455 // P2 has scored
RexRoshan 0:99fa5a619081 456 if ((_ebeam21 == true)||(_ebeam22 == true)||(enemybeam21_pos.x - _beam2_size < 0)||(enemybeam22_pos.x - _beam2_size < 0)) {
RexRoshan 0:99fa5a619081 457 _enemybeam2.init(_beam2_size,enemy21_pos.x,enemy21_pos.y,enemy22_pos.x,enemy22_pos.y);
RexRoshan 0:99fa5a619081 458 _ebeam21 = false;
RexRoshan 0:99fa5a619081 459 _ebeam22 = false;
RexRoshan 0:99fa5a619081 460 }
RexRoshan 0:99fa5a619081 461 }
RexRoshan 0:99fa5a619081 462
RexRoshan 1:45493d1d0689 463 void GameEngine::check_enemybeam3_collisions(Gamepad &pad)
RexRoshan 1:45493d1d0689 464 {
RexRoshan 1:45493d1d0689 465 Vector2D enemyboss_pos = _e3.get_enemyboss_pos();
RexRoshan 1:45493d1d0689 466 Vector2D enemy1_pos = _e3.get_enemy1_pos();
RexRoshan 1:45493d1d0689 467 Vector2D enemy2_pos = _e3.get_enemy2_pos();
RexRoshan 1:45493d1d0689 468
RexRoshan 1:45493d1d0689 469 Vector2D enemybossbeam3_pos = _enemybeam3.get_pos_boss();
RexRoshan 1:45493d1d0689 470 Vector2D enemy1beam3_pos = _enemybeam3.get_pos_enemy1();
RexRoshan 1:45493d1d0689 471 Vector2D enemy2beam3_pos = _enemybeam3.get_pos_enemy2();
RexRoshan 1:45493d1d0689 472 // P2 has scored
RexRoshan 1:45493d1d0689 473 if ((_ebeam3boss == true)||(_ebeam31 == true)||(_ebeam32 == true)||(enemybossbeam3_pos.x - _beam_size < 0)||(enemy1beam3_pos.x - _beam_size < 0)||(enemy2beam3_pos.x - _beam_size < 0)) {
RexRoshan 1:45493d1d0689 474 _enemybeam3.init(_beam_size,enemyboss_pos.x,enemyboss_pos.y,enemy1_pos.x,enemy1_pos.y,enemy2_pos.x,enemy2_pos.y);
RexRoshan 1:45493d1d0689 475 _ebeam3boss = false;
RexRoshan 1:45493d1d0689 476 _ebeam31 = false;
RexRoshan 1:45493d1d0689 477 _ebeam32 = false;
RexRoshan 1:45493d1d0689 478 }
RexRoshan 1:45493d1d0689 479 }
RexRoshan 1:45493d1d0689 480
RexRoshan 0:99fa5a619081 481 void GameEngine::check_spacecraft_collisions(Gamepad &pad)
RexRoshan 0:99fa5a619081 482 {
RexRoshan 0:99fa5a619081 483 Vector2D enemybeam_pos = _enemybeam.get_pos();
RexRoshan 0:99fa5a619081 484 Vector2D p1_pos = _p1.get_pos();
RexRoshan 0:99fa5a619081 485
RexRoshan 0:99fa5a619081 486 // see if beam has hit the enemy by checking for overlaps
RexRoshan 0:99fa5a619081 487 if (
RexRoshan 0:99fa5a619081 488 (enemybeam_pos.y >= p1_pos.y) && //top
RexRoshan 0:99fa5a619081 489 (enemybeam_pos.y <= p1_pos.y + 11) && //bottom
RexRoshan 0:99fa5a619081 490 (enemybeam_pos.x >= _p1x) && //left
RexRoshan 0:99fa5a619081 491 (enemybeam_pos.x <= _p1x + 11) //right
RexRoshan 0:99fa5a619081 492 ) {
RexRoshan 0:99fa5a619081 493 _p1.add_health();
RexRoshan 0:99fa5a619081 494 _ebeam = true;
RexRoshan 0:99fa5a619081 495 pad.tone(1000.0,0.1);
RexRoshan 0:99fa5a619081 496 }
RexRoshan 0:99fa5a619081 497
RexRoshan 0:99fa5a619081 498 _enemybeam.set_pos(enemybeam_pos);
RexRoshan 0:99fa5a619081 499
RexRoshan 0:99fa5a619081 500 }
RexRoshan 0:99fa5a619081 501
RexRoshan 0:99fa5a619081 502 void GameEngine::check_spacecraft2_collisions(Gamepad &pad)
RexRoshan 0:99fa5a619081 503 {
RexRoshan 0:99fa5a619081 504 Vector2D enemybeam21_pos = _enemybeam2.get_pos_21();
RexRoshan 0:99fa5a619081 505 Vector2D enemybeam22_pos = _enemybeam2.get_pos_22();
RexRoshan 0:99fa5a619081 506 Vector2D p1_pos = _p1.get_pos();
RexRoshan 0:99fa5a619081 507
RexRoshan 0:99fa5a619081 508 // see if beam has hit the enemy by checking for overlaps
RexRoshan 0:99fa5a619081 509 if (
RexRoshan 0:99fa5a619081 510 (enemybeam21_pos.y >= p1_pos.y) && //top
RexRoshan 0:99fa5a619081 511 (enemybeam21_pos.y <= p1_pos.y + 11) && //bottom
RexRoshan 0:99fa5a619081 512 (enemybeam21_pos.x >= _p1x) && //left
RexRoshan 0:99fa5a619081 513 (enemybeam21_pos.x <= _p1x + 11) //right
RexRoshan 0:99fa5a619081 514 ) {
RexRoshan 0:99fa5a619081 515 _p1.add_health();
RexRoshan 0:99fa5a619081 516 _ebeam21 = true;
RexRoshan 0:99fa5a619081 517 pad.tone(1000.0,0.1);
RexRoshan 0:99fa5a619081 518 }
RexRoshan 1:45493d1d0689 519 else if (
RexRoshan 0:99fa5a619081 520 (enemybeam22_pos.y >= p1_pos.y) && //top
RexRoshan 0:99fa5a619081 521 (enemybeam22_pos.y <= p1_pos.y + 11) && //bottom
RexRoshan 0:99fa5a619081 522 (enemybeam22_pos.x >= _p1x) && //left
RexRoshan 0:99fa5a619081 523 (enemybeam22_pos.x <= _p1x + 11) //right
RexRoshan 0:99fa5a619081 524 ) {
RexRoshan 0:99fa5a619081 525 _p1.add_health();
RexRoshan 0:99fa5a619081 526 _ebeam22 = true;
RexRoshan 0:99fa5a619081 527 pad.tone(1000.0,0.1);
RexRoshan 0:99fa5a619081 528 }
RexRoshan 0:99fa5a619081 529 _enemybeam2.set_pos_21(enemybeam21_pos);
RexRoshan 0:99fa5a619081 530 _enemybeam2.set_pos_22(enemybeam22_pos);
RexRoshan 0:99fa5a619081 531
RexRoshan 0:99fa5a619081 532 }
RexRoshan 1:45493d1d0689 533
RexRoshan 1:45493d1d0689 534 void GameEngine::check_spacecraft3_collisions(Gamepad &pad)
RexRoshan 1:45493d1d0689 535 {
RexRoshan 1:45493d1d0689 536 Vector2D enemybossbeam_pos = _enemybeam3.get_pos_boss();
RexRoshan 1:45493d1d0689 537 Vector2D enemy1beam_pos = _enemybeam3.get_pos_enemy1();
RexRoshan 1:45493d1d0689 538 Vector2D enemy2beam_pos = _enemybeam3.get_pos_enemy2();
RexRoshan 1:45493d1d0689 539
RexRoshan 1:45493d1d0689 540 Vector2D p1_pos = _p1.get_pos();
RexRoshan 1:45493d1d0689 541
RexRoshan 1:45493d1d0689 542 // see if beam has hit the enemy by checking for overlaps
RexRoshan 1:45493d1d0689 543 if (
RexRoshan 1:45493d1d0689 544 (enemybossbeam_pos.y >= p1_pos.y) && //top
RexRoshan 1:45493d1d0689 545 (enemybossbeam_pos.y <= p1_pos.y + 11) && //bottom
RexRoshan 1:45493d1d0689 546 (enemybossbeam_pos.x >= _p1x) && //left
RexRoshan 1:45493d1d0689 547 (enemybossbeam_pos.x <= _p1x + 11) //right
RexRoshan 1:45493d1d0689 548 ) {
RexRoshan 1:45493d1d0689 549 _p1.add_health();
RexRoshan 1:45493d1d0689 550 _ebeam3boss = true;
RexRoshan 1:45493d1d0689 551 pad.tone(1000.0,0.1);
RexRoshan 1:45493d1d0689 552 }
RexRoshan 1:45493d1d0689 553 else if (
RexRoshan 1:45493d1d0689 554 (enemy1beam_pos.y >= p1_pos.y) && //top
RexRoshan 1:45493d1d0689 555 (enemy1beam_pos.y <= p1_pos.y + 11) && //bottom
RexRoshan 1:45493d1d0689 556 (enemy1beam_pos.x >= _p1x) && //left
RexRoshan 1:45493d1d0689 557 (enemy1beam_pos.x <= _p1x + 11) //right
RexRoshan 1:45493d1d0689 558 ) {
RexRoshan 1:45493d1d0689 559 _p1.add_health();
RexRoshan 1:45493d1d0689 560 _ebeam31 = true;
RexRoshan 1:45493d1d0689 561 pad.tone(1000.0,0.1);
RexRoshan 1:45493d1d0689 562 }
RexRoshan 1:45493d1d0689 563 else if (
RexRoshan 1:45493d1d0689 564 (enemy2beam_pos.y >= p1_pos.y) && //top
RexRoshan 1:45493d1d0689 565 (enemy2beam_pos.y <= p1_pos.y + 11) && //bottom
RexRoshan 1:45493d1d0689 566 (enemy2beam_pos.x >= _p1x) && //left
RexRoshan 1:45493d1d0689 567 (enemy2beam_pos.x <= _p1x + 11) //right
RexRoshan 1:45493d1d0689 568 ) {
RexRoshan 1:45493d1d0689 569 _p1.add_health();
RexRoshan 1:45493d1d0689 570 _ebeam32 = true;
RexRoshan 1:45493d1d0689 571 pad.tone(1000.0,0.1);
RexRoshan 1:45493d1d0689 572 }
RexRoshan 1:45493d1d0689 573
RexRoshan 1:45493d1d0689 574 _enemybeam3.set_pos_boss(enemybossbeam_pos);
RexRoshan 1:45493d1d0689 575 _enemybeam3.set_pos_enemy1(enemy1beam_pos);
RexRoshan 1:45493d1d0689 576 _enemybeam3.set_pos_enemy2(enemy2beam_pos);
RexRoshan 1:45493d1d0689 577
RexRoshan 1:45493d1d0689 578 }
RexRoshan 1:45493d1d0689 579
RexRoshan 0:99fa5a619081 580 void GameEngine::check_wall_collisions(Gamepad &pad)
RexRoshan 0:99fa5a619081 581 {
RexRoshan 0:99fa5a619081 582 // read current ball attributes
RexRoshan 0:99fa5a619081 583 Vector2D enemy21_pos = _e21.get_enemy21_pos();
RexRoshan 0:99fa5a619081 584 Vector2D enemy22_pos = _e22.get_enemy22_pos();
RexRoshan 0:99fa5a619081 585 Vector2D enemy21_movement = _e21.get_movement();
RexRoshan 0:99fa5a619081 586 Vector2D enemy22_movement = _e22.get_movement();
RexRoshan 0:99fa5a619081 587
RexRoshan 0:99fa5a619081 588 // check if hit top wall
RexRoshan 0:99fa5a619081 589 if (enemy21_pos.y <= 1) { // 1 due to 1 pixel boundary
RexRoshan 0:99fa5a619081 590 enemy21_pos.y = 1; // bounce off ceiling without going off screen
RexRoshan 0:99fa5a619081 591 enemy21_movement.y = -enemy21_movement.y;
RexRoshan 0:99fa5a619081 592 }
RexRoshan 0:99fa5a619081 593 // check if hit bottom wall
RexRoshan 0:99fa5a619081 594 else if (enemy21_pos.y + 7 >= (HEIGHT-1) ) { // bottom pixel is 47
RexRoshan 0:99fa5a619081 595 // hit bottom
RexRoshan 0:99fa5a619081 596 enemy21_pos.y = (HEIGHT-1) - 7; // stops ball going off screen
RexRoshan 0:99fa5a619081 597 enemy21_movement.y = -enemy21_movement.y;
RexRoshan 0:99fa5a619081 598 // audio feedback
RexRoshan 0:99fa5a619081 599 } else if (enemy22_pos.y + 7 >= (HEIGHT-1) ) { // bottom pixel is 47
RexRoshan 0:99fa5a619081 600 // hit bottom
RexRoshan 0:99fa5a619081 601 enemy22_pos.y = (HEIGHT-1) - 7; // stops ball going off screen
RexRoshan 0:99fa5a619081 602 enemy22_movement.y = -enemy22_movement.y;
RexRoshan 0:99fa5a619081 603 // audio feedback
RexRoshan 0:99fa5a619081 604 } else if (enemy22_pos.y <= 1) { // 1 due to 1 pixel boundary
RexRoshan 0:99fa5a619081 605 enemy22_pos.y = 1; // bounce off ceiling without going off screen
RexRoshan 0:99fa5a619081 606 enemy22_movement.y = -enemy22_movement.y;
RexRoshan 0:99fa5a619081 607 }
RexRoshan 0:99fa5a619081 608
RexRoshan 0:99fa5a619081 609 // update ball parameters
RexRoshan 0:99fa5a619081 610 _e21.set_movement(enemy21_movement);
RexRoshan 0:99fa5a619081 611 _e22.set_movement(enemy22_movement);
RexRoshan 0:99fa5a619081 612 _e21.set_enemy21_pos(enemy21_pos);
RexRoshan 0:99fa5a619081 613 _e22.set_enemy22_pos(enemy22_pos);
RexRoshan 0:99fa5a619081 614 }
RexRoshan 1:45493d1d0689 615
RexRoshan 1:45493d1d0689 616 void GameEngine::check_wall2_collisions(Gamepad &pad)
RexRoshan 1:45493d1d0689 617 {
RexRoshan 1:45493d1d0689 618 // read current ball attributes
RexRoshan 1:45493d1d0689 619 Vector2D enemyboss_pos = _e3.get_enemyboss_pos();
RexRoshan 1:45493d1d0689 620 Vector2D enemyboss_movement = _e3.get_movement();
RexRoshan 1:45493d1d0689 621
RexRoshan 1:45493d1d0689 622 // check if hit top wall
RexRoshan 1:45493d1d0689 623 if (enemyboss_pos.y <= 1) { // 1 due to 1 pixel boundary
RexRoshan 1:45493d1d0689 624 enemyboss_pos.y = 1; // bounce off ceiling without going off screen
RexRoshan 1:45493d1d0689 625 enemyboss_movement.y = -enemyboss_movement.y;
RexRoshan 1:45493d1d0689 626 }
RexRoshan 1:45493d1d0689 627 // check if hit bottom wall
RexRoshan 1:45493d1d0689 628 else if (enemyboss_pos.y + 12 >= (HEIGHT-1) ) { // bottom pixel is 47
RexRoshan 1:45493d1d0689 629 // hit bottom
RexRoshan 1:45493d1d0689 630 enemyboss_pos.y = (HEIGHT-1) - 12; // stops ball going off screen
RexRoshan 1:45493d1d0689 631 enemyboss_movement.y = -enemyboss_movement.y;
RexRoshan 1:45493d1d0689 632 // audio feedback
RexRoshan 1:45493d1d0689 633 }else if (enemyboss_pos.x + 12 >= (WIDTH-1) ) { // bottom pixel is 47
RexRoshan 1:45493d1d0689 634 // hit bottom
RexRoshan 1:45493d1d0689 635 enemyboss_pos.x = (WIDTH-1) - 12; // stops ball going off screen
RexRoshan 1:45493d1d0689 636 enemyboss_movement.x = -enemyboss_movement.x;
RexRoshan 1:45493d1d0689 637 // audio feedback
RexRoshan 1:45493d1d0689 638 }else if (enemyboss_pos.x <= WIDTH/2) { // 1 due to 1 pixel boundary
RexRoshan 1:45493d1d0689 639 enemyboss_pos.x = WIDTH/2; // bounce off ceiling without going halfway
RexRoshan 1:45493d1d0689 640 enemyboss_movement.x = -enemyboss_movement.x;
RexRoshan 1:45493d1d0689 641 }
RexRoshan 1:45493d1d0689 642
RexRoshan 1:45493d1d0689 643 _e3.set_movement(enemyboss_movement);
RexRoshan 1:45493d1d0689 644 _e3.set_enemyboss_pos(enemyboss_pos);
RexRoshan 1:45493d1d0689 645
RexRoshan 1:45493d1d0689 646 }
RexRoshan 1:45493d1d0689 647
RexRoshan 0:99fa5a619081 648 void GameEngine::enemy_dead(N5110 &lcd, Gamepad &pad){
RexRoshan 0:99fa5a619081 649 int e1_health = _e1.get_health();
RexRoshan 0:99fa5a619081 650 Vector2D e1_pos = _e1.get_enemy_pos();
RexRoshan 0:99fa5a619081 651 if (e1_health == 10){
RexRoshan 0:99fa5a619081 652 lcd.drawSprite(e1_pos.x-10,e1_pos.y-10,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 653 pad.tone(1000.0,0.5);
RexRoshan 0:99fa5a619081 654 pad.tone(800.0,0.5);
RexRoshan 0:99fa5a619081 655 pad.tone(600.0,0.5);
RexRoshan 0:99fa5a619081 656 pad.tone(400.0,0.5);
RexRoshan 0:99fa5a619081 657 // lcd.refresh();
RexRoshan 0:99fa5a619081 658 wait(0.5);
RexRoshan 0:99fa5a619081 659 lcd.drawSprite(e1_pos.x-10,e1_pos.y-10,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 660 _e1.update();
RexRoshan 0:99fa5a619081 661 // wait(2.0);
RexRoshan 0:99fa5a619081 662 _stage = 2;
RexRoshan 0:99fa5a619081 663 _e1.add_health();
RexRoshan 0:99fa5a619081 664 lcd.refresh();
RexRoshan 0:99fa5a619081 665 }
RexRoshan 0:99fa5a619081 666
RexRoshan 0:99fa5a619081 667 }
RexRoshan 0:99fa5a619081 668
RexRoshan 0:99fa5a619081 669 void GameEngine::enemy2_dead(N5110 &lcd, Gamepad &pad){
RexRoshan 0:99fa5a619081 670
RexRoshan 0:99fa5a619081 671 int e21_health = _e21.get_health();
RexRoshan 0:99fa5a619081 672 int e22_health = _e22.get_health();
RexRoshan 0:99fa5a619081 673
RexRoshan 0:99fa5a619081 674 Vector2D e21_pos = _e21.get_enemy21_pos();
RexRoshan 0:99fa5a619081 675 Vector2D e22_pos = _e22.get_enemy22_pos();
RexRoshan 0:99fa5a619081 676
RexRoshan 0:99fa5a619081 677 if ((e21_health >= 10) && (e22_health >= 10)){
RexRoshan 0:99fa5a619081 678 lcd.drawSprite(e21_pos.x-10,e21_pos.y-10,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 679 lcd.drawSprite(e22_pos.x-10,e22_pos.y-10,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 680 pad.tone(1000.0,0.5);
RexRoshan 0:99fa5a619081 681 pad.tone(800.0,0.5);
RexRoshan 0:99fa5a619081 682 pad.tone(600.0,0.5);
RexRoshan 0:99fa5a619081 683 pad.tone(400.0,0.5);
RexRoshan 0:99fa5a619081 684 // lcd.refresh();
RexRoshan 0:99fa5a619081 685 wait(0.2);
RexRoshan 0:99fa5a619081 686 lcd.drawSprite(e21_pos.x-10,e21_pos.y-10,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 687 lcd.drawSprite(e22_pos.x-10,e22_pos.y-10,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 688 _stage = 4;
RexRoshan 0:99fa5a619081 689 _e21.add_health();
RexRoshan 0:99fa5a619081 690 _e22.add_health();
RexRoshan 0:99fa5a619081 691 lcd.refresh();
RexRoshan 0:99fa5a619081 692 }
RexRoshan 0:99fa5a619081 693
RexRoshan 0:99fa5a619081 694 }
RexRoshan 1:45493d1d0689 695
RexRoshan 1:45493d1d0689 696 void GameEngine::enemy3_dead(N5110 &lcd, Gamepad &pad){
RexRoshan 1:45493d1d0689 697
RexRoshan 1:45493d1d0689 698 int e3boss_health = _e3.get_health_boss();
RexRoshan 1:45493d1d0689 699 int e31_health = _e3.get_health_enemy1();
RexRoshan 1:45493d1d0689 700 int e32_health = _e3.get_health_enemy2();
RexRoshan 1:45493d1d0689 701
RexRoshan 1:45493d1d0689 702 Vector2D e3boss_pos = _e3.get_enemyboss_pos();
RexRoshan 1:45493d1d0689 703 Vector2D e31_pos = _e3.get_enemy1_pos();
RexRoshan 1:45493d1d0689 704 Vector2D e32_pos = _e3.get_enemy2_pos();
RexRoshan 1:45493d1d0689 705
RexRoshan 1:45493d1d0689 706 if ((e3boss_health >= 10) && (e31_health >= 10) && (e32_health >= 10)){
RexRoshan 1:45493d1d0689 707 lcd.drawSprite(e3boss_pos.x-10,e3boss_pos.y-10,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 708 lcd.drawSprite(e31_pos.x-10,e31_pos.y-10,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 709 lcd.drawSprite(e32_pos.x-10,e32_pos.y-10,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 710 pad.tone(1000.0,0.5);
RexRoshan 1:45493d1d0689 711 pad.tone(800.0,0.5);
RexRoshan 1:45493d1d0689 712 pad.tone(600.0,0.5);
RexRoshan 1:45493d1d0689 713 pad.tone(400.0,0.5);
RexRoshan 1:45493d1d0689 714 // lcd.refresh();
RexRoshan 1:45493d1d0689 715 wait(0.2);
RexRoshan 1:45493d1d0689 716 lcd.drawSprite(e3boss_pos.x-10,e3boss_pos.y-10,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 717 lcd.drawSprite(e31_pos.x-10,e31_pos.y-10,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 718 lcd.drawSprite(e32_pos.x-10,e32_pos.y-10,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 719 _stage = 6;
RexRoshan 1:45493d1d0689 720 _e3.add_health_boss();
RexRoshan 1:45493d1d0689 721 _e3.add_health_enemy1();
RexRoshan 1:45493d1d0689 722 _e3.add_health_enemy2();
RexRoshan 1:45493d1d0689 723 lcd.refresh();
RexRoshan 1:45493d1d0689 724 }
RexRoshan 1:45493d1d0689 725
RexRoshan 1:45493d1d0689 726 }
RexRoshan 1:45493d1d0689 727
RexRoshan 0:99fa5a619081 728 void GameEngine::spacecraft_dead(N5110 &lcd, Gamepad &pad)
RexRoshan 0:99fa5a619081 729 {
RexRoshan 0:99fa5a619081 730
RexRoshan 0:99fa5a619081 731 int p1_health = _p1.get_health();
RexRoshan 0:99fa5a619081 732 Vector2D p1_pos = _p1.get_pos();
RexRoshan 0:99fa5a619081 733
RexRoshan 0:99fa5a619081 734 if (p1_health == 6){
RexRoshan 0:99fa5a619081 735
RexRoshan 0:99fa5a619081 736 lcd.drawSprite(p1_pos.x-5,p1_pos.y-7,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 737 pad.tone(1000.0,0.5);
RexRoshan 0:99fa5a619081 738 pad.tone(800.0,0.5);
RexRoshan 0:99fa5a619081 739 pad.tone(600.0,0.5);
RexRoshan 0:99fa5a619081 740 pad.tone(400.0,0.5);
RexRoshan 0:99fa5a619081 741 wait(0.5);
RexRoshan 0:99fa5a619081 742 lcd.refresh();
RexRoshan 0:99fa5a619081 743 wait(0.1);
RexRoshan 0:99fa5a619081 744 lcd.drawSprite(p1_pos.x-5,p1_pos.y-7,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 745 _p1.update_move();
RexRoshan 0:99fa5a619081 746 // wait(2.0);
RexRoshan 0:99fa5a619081 747 _stage = 1;
RexRoshan 0:99fa5a619081 748 _p1.add_health();
RexRoshan 0:99fa5a619081 749 lcd.refresh();
RexRoshan 0:99fa5a619081 750 }
RexRoshan 0:99fa5a619081 751
RexRoshan 0:99fa5a619081 752 }
RexRoshan 0:99fa5a619081 753
RexRoshan 0:99fa5a619081 754 void GameEngine::spacecraft2_dead(N5110 &lcd, Gamepad &pad)
RexRoshan 0:99fa5a619081 755 {
RexRoshan 0:99fa5a619081 756
RexRoshan 0:99fa5a619081 757 int p1_health = _p1.get_health();
RexRoshan 0:99fa5a619081 758 Vector2D p1_pos = _p1.get_pos();
RexRoshan 0:99fa5a619081 759
RexRoshan 0:99fa5a619081 760 if (p1_health == 6){
RexRoshan 0:99fa5a619081 761
RexRoshan 0:99fa5a619081 762 lcd.drawSprite(p1_pos.x-5,p1_pos.y-7,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 763 pad.tone(1000.0,0.5);
RexRoshan 0:99fa5a619081 764 pad.tone(800.0,0.5);
RexRoshan 0:99fa5a619081 765 pad.tone(600.0,0.5);
RexRoshan 0:99fa5a619081 766 pad.tone(400.0,0.5);
RexRoshan 0:99fa5a619081 767 wait(0.5);
RexRoshan 0:99fa5a619081 768 lcd.refresh();
RexRoshan 0:99fa5a619081 769 wait(0.1);
RexRoshan 0:99fa5a619081 770 lcd.drawSprite(p1_pos.x-5,p1_pos.y-7,23,23,(int *)explosion);
RexRoshan 0:99fa5a619081 771 _p1.update_move();
RexRoshan 0:99fa5a619081 772 // wait(2.0);
RexRoshan 0:99fa5a619081 773 _stage = 3;
RexRoshan 0:99fa5a619081 774 _p1.add_health();
RexRoshan 0:99fa5a619081 775 lcd.refresh();
RexRoshan 0:99fa5a619081 776 }
RexRoshan 0:99fa5a619081 777
RexRoshan 0:99fa5a619081 778 }
RexRoshan 1:45493d1d0689 779
RexRoshan 1:45493d1d0689 780 void GameEngine::spacecraft3_dead(N5110 &lcd, Gamepad &pad)
RexRoshan 1:45493d1d0689 781 {
RexRoshan 1:45493d1d0689 782
RexRoshan 1:45493d1d0689 783 int p1_health = _p1.get_health();
RexRoshan 1:45493d1d0689 784 Vector2D p1_pos = _p1.get_pos();
RexRoshan 1:45493d1d0689 785
RexRoshan 1:45493d1d0689 786 if (p1_health == 6){
RexRoshan 1:45493d1d0689 787
RexRoshan 1:45493d1d0689 788 lcd.drawSprite(p1_pos.x-5,p1_pos.y-7,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 789 pad.tone(1000.0,0.5);
RexRoshan 1:45493d1d0689 790 pad.tone(800.0,0.5);
RexRoshan 1:45493d1d0689 791 pad.tone(600.0,0.5);
RexRoshan 1:45493d1d0689 792 pad.tone(400.0,0.5);
RexRoshan 1:45493d1d0689 793 wait(0.5);
RexRoshan 1:45493d1d0689 794 lcd.refresh();
RexRoshan 1:45493d1d0689 795 wait(0.1);
RexRoshan 1:45493d1d0689 796 lcd.drawSprite(p1_pos.x-5,p1_pos.y-7,23,23,(int *)explosion);
RexRoshan 1:45493d1d0689 797 _p1.update_move();
RexRoshan 1:45493d1d0689 798 // wait(2.0);
RexRoshan 1:45493d1d0689 799 _stage = 5;
RexRoshan 1:45493d1d0689 800 _p1.add_health();
RexRoshan 1:45493d1d0689 801 lcd.refresh();
RexRoshan 1:45493d1d0689 802 }
RexRoshan 1:45493d1d0689 803
RexRoshan 1:45493d1d0689 804 }
RexRoshan 1:45493d1d0689 805
RexRoshan 0:99fa5a619081 806 void GameEngine::check_mission_one(Gamepad &pad){
RexRoshan 0:99fa5a619081 807
RexRoshan 0:99fa5a619081 808 if (_stage == 1){
RexRoshan 0:99fa5a619081 809 pad.tone(233.0,0.5);
RexRoshan 0:99fa5a619081 810 wait(0.5);
RexRoshan 0:99fa5a619081 811 pad.tone(184.0,0.5);
RexRoshan 0:99fa5a619081 812 wait(0.5);
RexRoshan 0:99fa5a619081 813 pad.tone(174.0,2.0);
RexRoshan 0:99fa5a619081 814 wait(1.0);
RexRoshan 0:99fa5a619081 815 } else if (_stage == 2){
RexRoshan 0:99fa5a619081 816
RexRoshan 0:99fa5a619081 817 pad.leds_off();
RexRoshan 0:99fa5a619081 818 pad.tone(184.0,0.2);
RexRoshan 0:99fa5a619081 819 wait(0.5);
RexRoshan 0:99fa5a619081 820 pad.tone(233.0,0.2);
RexRoshan 0:99fa5a619081 821 wait(0.5);
RexRoshan 0:99fa5a619081 822 pad.tone(184.0,0.2);
RexRoshan 0:99fa5a619081 823 wait(0.5);
RexRoshan 0:99fa5a619081 824 pad.tone(233.0,0.2);
RexRoshan 0:99fa5a619081 825 wait(0.5);
RexRoshan 0:99fa5a619081 826 pad.tone(184.0,0.2);
RexRoshan 0:99fa5a619081 827 wait(0.5);
RexRoshan 0:99fa5a619081 828 pad.tone(233.0,0.2);
RexRoshan 0:99fa5a619081 829 wait(0.5);
RexRoshan 0:99fa5a619081 830 pad.tone(184.0,2.0);
RexRoshan 0:99fa5a619081 831 wait(0.5);
RexRoshan 0:99fa5a619081 832 }
RexRoshan 0:99fa5a619081 833 }
RexRoshan 0:99fa5a619081 834
RexRoshan 0:99fa5a619081 835 void GameEngine::check_mission_two(Gamepad &pad){
RexRoshan 0:99fa5a619081 836
RexRoshan 0:99fa5a619081 837 if (_stage == 3){
RexRoshan 0:99fa5a619081 838 pad.tone(233.0,0.5);
RexRoshan 0:99fa5a619081 839 wait(0.5);
RexRoshan 0:99fa5a619081 840 pad.tone(184.0,0.5);
RexRoshan 0:99fa5a619081 841 wait(0.5);
RexRoshan 0:99fa5a619081 842 pad.tone(174.0,2.0);
RexRoshan 0:99fa5a619081 843 wait(1.0);
RexRoshan 0:99fa5a619081 844 } else if (_stage == 4){
RexRoshan 0:99fa5a619081 845
RexRoshan 0:99fa5a619081 846 pad.leds_off();
RexRoshan 0:99fa5a619081 847 pad.tone(184.0,0.2);
RexRoshan 0:99fa5a619081 848 wait(0.5);
RexRoshan 0:99fa5a619081 849 pad.tone(233.0,0.2);
RexRoshan 0:99fa5a619081 850 wait(0.5);
RexRoshan 0:99fa5a619081 851 pad.tone(184.0,0.2);
RexRoshan 0:99fa5a619081 852 wait(0.5);
RexRoshan 0:99fa5a619081 853 pad.tone(233.0,0.2);
RexRoshan 0:99fa5a619081 854 wait(0.5);
RexRoshan 0:99fa5a619081 855 pad.tone(184.0,0.2);
RexRoshan 0:99fa5a619081 856 wait(0.5);
RexRoshan 0:99fa5a619081 857 pad.tone(233.0,0.2);
RexRoshan 0:99fa5a619081 858 wait(0.5);
RexRoshan 0:99fa5a619081 859 pad.tone(184.0,2.0);
RexRoshan 0:99fa5a619081 860 wait(0.5);
RexRoshan 0:99fa5a619081 861 }
RexRoshan 0:99fa5a619081 862 }
RexRoshan 0:99fa5a619081 863
RexRoshan 1:45493d1d0689 864 void GameEngine::check_mission_three(Gamepad &pad){
RexRoshan 1:45493d1d0689 865
RexRoshan 1:45493d1d0689 866 if (_stage == 5){
RexRoshan 1:45493d1d0689 867 pad.tone(233.0,0.5);
RexRoshan 1:45493d1d0689 868 wait(0.5);
RexRoshan 1:45493d1d0689 869 pad.tone(184.0,0.5);
RexRoshan 1:45493d1d0689 870 wait(0.5);
RexRoshan 1:45493d1d0689 871 pad.tone(174.0,2.0);
RexRoshan 1:45493d1d0689 872 wait(1.0);
RexRoshan 1:45493d1d0689 873 } else if (_stage == 6 ){
RexRoshan 1:45493d1d0689 874
RexRoshan 1:45493d1d0689 875 pad.leds_off();
RexRoshan 1:45493d1d0689 876 pad.tone(184.0,0.2);
RexRoshan 1:45493d1d0689 877 wait(0.5);
RexRoshan 1:45493d1d0689 878 pad.tone(233.0,0.2);
RexRoshan 1:45493d1d0689 879 wait(0.5);
RexRoshan 1:45493d1d0689 880 pad.tone(184.0,0.2);
RexRoshan 1:45493d1d0689 881 wait(0.5);
RexRoshan 1:45493d1d0689 882 pad.tone(233.0,0.2);
RexRoshan 1:45493d1d0689 883 wait(0.5);
RexRoshan 1:45493d1d0689 884 pad.tone(184.0,0.2);
RexRoshan 1:45493d1d0689 885 wait(0.5);
RexRoshan 1:45493d1d0689 886 pad.tone(233.0,0.2);
RexRoshan 1:45493d1d0689 887 wait(0.5);
RexRoshan 1:45493d1d0689 888 pad.tone(184.0,2.0);
RexRoshan 1:45493d1d0689 889 wait(0.5);
RexRoshan 1:45493d1d0689 890 }
RexRoshan 1:45493d1d0689 891 }
RexRoshan 0:99fa5a619081 892
RexRoshan 0:99fa5a619081 893 void GameEngine::draw_enemy_health(N5110 &lcd)
RexRoshan 0:99fa5a619081 894 {
RexRoshan 0:99fa5a619081 895 // get health of the enemy
RexRoshan 0:99fa5a619081 896 int e1_health = _e1.get_health();
RexRoshan 0:99fa5a619081 897
RexRoshan 3:bf9624e5b0c3 898 if (e21_health < 10){
RexRoshan 1:45493d1d0689 899 lcd.drawRect(62,42,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 900 lcd.drawRect(62,42,20-2*e1_health,4,FILL_BLACK);
RexRoshan 3:bf9624e5b0c3 901 }
RexRoshan 3:bf9624e5b0c3 902 else {
RexRoshan 3:bf9624e5b0c3 903 lcd.drawRect(62,42,20,4,FILL_TRANSPARENT);
RexRoshan 3:bf9624e5b0c3 904 }
RexRoshan 0:99fa5a619081 905
RexRoshan 0:99fa5a619081 906
RexRoshan 0:99fa5a619081 907 }
RexRoshan 0:99fa5a619081 908
RexRoshan 0:99fa5a619081 909 void GameEngine::draw_enemy21_health(N5110 &lcd)
RexRoshan 0:99fa5a619081 910 {
RexRoshan 0:99fa5a619081 911 // get health of the enemy
RexRoshan 0:99fa5a619081 912 int e21_health = _e21.get_health();
RexRoshan 0:99fa5a619081 913
RexRoshan 0:99fa5a619081 914 if (e21_health < 10){
RexRoshan 1:45493d1d0689 915 lcd.drawRect(2,42,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 916 lcd.drawRect(2,42,20-2*e21_health,4,FILL_BLACK);
RexRoshan 0:99fa5a619081 917 }
RexRoshan 0:99fa5a619081 918 else {
RexRoshan 1:45493d1d0689 919 lcd.drawRect(2,42,20,4,FILL_TRANSPARENT);
RexRoshan 0:99fa5a619081 920 }
RexRoshan 0:99fa5a619081 921 }
RexRoshan 0:99fa5a619081 922
RexRoshan 0:99fa5a619081 923 void GameEngine::draw_enemy22_health(N5110 &lcd)
RexRoshan 0:99fa5a619081 924 {
RexRoshan 0:99fa5a619081 925 // get health of the enemy
RexRoshan 0:99fa5a619081 926 int e22_health = _e22.get_health();
RexRoshan 0:99fa5a619081 927
RexRoshan 0:99fa5a619081 928 if (e22_health < 10){
RexRoshan 1:45493d1d0689 929 lcd.drawRect(62,42,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 930 lcd.drawRect(62,42,20-2*e22_health,4,FILL_BLACK);
RexRoshan 0:99fa5a619081 931 }
RexRoshan 0:99fa5a619081 932 else {
RexRoshan 1:45493d1d0689 933 lcd.drawRect(62,42,20,4,FILL_TRANSPARENT);
RexRoshan 0:99fa5a619081 934 }
RexRoshan 0:99fa5a619081 935
RexRoshan 0:99fa5a619081 936 }
RexRoshan 0:99fa5a619081 937
RexRoshan 1:45493d1d0689 938 void GameEngine::draw_enemyboss_health(N5110 &lcd)
RexRoshan 1:45493d1d0689 939 {
RexRoshan 1:45493d1d0689 940 // get health of the enemy
RexRoshan 1:45493d1d0689 941 int e3boss_health = _e3.get_health_boss();
RexRoshan 1:45493d1d0689 942 int e3enemy1_health = _e3.get_health_enemy1();
RexRoshan 1:45493d1d0689 943 int e3enemy2_health = _e3.get_health_enemy2();
RexRoshan 1:45493d1d0689 944
RexRoshan 1:45493d1d0689 945 if (e3boss_health < 10){
RexRoshan 1:45493d1d0689 946 lcd.drawRect(62,42,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 947 lcd.drawRect(62,42,20-2*e3boss_health,4,FILL_BLACK);
RexRoshan 1:45493d1d0689 948 }
RexRoshan 1:45493d1d0689 949 else {
RexRoshan 1:45493d1d0689 950 lcd.drawRect(62,42,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 951 }
RexRoshan 1:45493d1d0689 952 if (e3enemy1_health < 10){
RexRoshan 1:45493d1d0689 953 lcd.drawRect(2,42,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 954 lcd.drawRect(2,42,20-2*e3enemy1_health,4,FILL_BLACK);
RexRoshan 1:45493d1d0689 955 }
RexRoshan 1:45493d1d0689 956 else {
RexRoshan 1:45493d1d0689 957 lcd.drawRect(2,42,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 958 }
RexRoshan 1:45493d1d0689 959 if (e3enemy2_health < 10){
RexRoshan 1:45493d1d0689 960 lcd.drawRect(62,2,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 961 lcd.drawRect(62,2,20-2*e3enemy2_health,4,FILL_BLACK);
RexRoshan 1:45493d1d0689 962 }
RexRoshan 1:45493d1d0689 963 else {
RexRoshan 1:45493d1d0689 964 lcd.drawRect(62,2,20,4,FILL_TRANSPARENT);
RexRoshan 1:45493d1d0689 965 }
RexRoshan 1:45493d1d0689 966 }
RexRoshan 1:45493d1d0689 967
RexRoshan 0:99fa5a619081 968 void GameEngine::draw_spacecraft_health(Gamepad &pad)
RexRoshan 0:99fa5a619081 969 {
RexRoshan 0:99fa5a619081 970 //get the health of the spacecraft
RexRoshan 0:99fa5a619081 971 int p1_health = _p1.get_health();
RexRoshan 0:99fa5a619081 972
RexRoshan 0:99fa5a619081 973 if (p1_health == 0){
RexRoshan 0:99fa5a619081 974 pad.leds_on();
RexRoshan 0:99fa5a619081 975 }else if (p1_health == 1){
RexRoshan 0:99fa5a619081 976 pad.led(1,0);
RexRoshan 0:99fa5a619081 977 pad.led(2,1);
RexRoshan 0:99fa5a619081 978 pad.led(3,1);
RexRoshan 0:99fa5a619081 979 pad.led(4,1);
RexRoshan 0:99fa5a619081 980 pad.led(5,1);
RexRoshan 0:99fa5a619081 981 pad.led(6,1);
RexRoshan 0:99fa5a619081 982
RexRoshan 0:99fa5a619081 983 }else if (p1_health == 2){
RexRoshan 0:99fa5a619081 984 pad.led(1,0);
RexRoshan 0:99fa5a619081 985 pad.led(2,0);
RexRoshan 0:99fa5a619081 986 pad.led(3,1);
RexRoshan 0:99fa5a619081 987 pad.led(4,1);
RexRoshan 0:99fa5a619081 988 pad.led(5,1);
RexRoshan 0:99fa5a619081 989 pad.led(6,1);
RexRoshan 0:99fa5a619081 990 }else if (p1_health == 3){
RexRoshan 0:99fa5a619081 991 pad.led(1,0);
RexRoshan 0:99fa5a619081 992 pad.led(2,0);
RexRoshan 0:99fa5a619081 993 pad.led(3,0);
RexRoshan 0:99fa5a619081 994 pad.led(4,1);
RexRoshan 0:99fa5a619081 995 pad.led(5,1);
RexRoshan 0:99fa5a619081 996 pad.led(6,1);
RexRoshan 0:99fa5a619081 997
RexRoshan 0:99fa5a619081 998 }else if (p1_health == 4){
RexRoshan 0:99fa5a619081 999 pad.led(1,0);
RexRoshan 0:99fa5a619081 1000 pad.led(2,0);
RexRoshan 0:99fa5a619081 1001 pad.led(3,0);
RexRoshan 0:99fa5a619081 1002 pad.led(4,0);
RexRoshan 0:99fa5a619081 1003 pad.led(5,1);
RexRoshan 0:99fa5a619081 1004 pad.led(6,1);
RexRoshan 0:99fa5a619081 1005
RexRoshan 0:99fa5a619081 1006 }else if (p1_health == 5){
RexRoshan 0:99fa5a619081 1007 pad.led(1,0);
RexRoshan 0:99fa5a619081 1008 pad.led(2,0);
RexRoshan 0:99fa5a619081 1009 pad.led(3,0);
RexRoshan 0:99fa5a619081 1010 pad.led(4,0);
RexRoshan 0:99fa5a619081 1011 pad.led(5,0);
RexRoshan 0:99fa5a619081 1012 pad.led(6,1);
RexRoshan 0:99fa5a619081 1013
RexRoshan 0:99fa5a619081 1014 } else {
RexRoshan 0:99fa5a619081 1015 pad.leds_off();
RexRoshan 0:99fa5a619081 1016 }
RexRoshan 0:99fa5a619081 1017
RexRoshan 0:99fa5a619081 1018 }
RexRoshan 0:99fa5a619081 1019
RexRoshan 0:99fa5a619081 1020 int GameEngine::get_game_stage() {
RexRoshan 0:99fa5a619081 1021 int stage = _stage;
RexRoshan 0:99fa5a619081 1022 return stage;
RexRoshan 0:99fa5a619081 1023 }
RexRoshan 0:99fa5a619081 1024
RexRoshan 0:99fa5a619081 1025 int GameEngine::restart_game_stage() {
RexRoshan 0:99fa5a619081 1026 int stage = _stage;
RexRoshan 0:99fa5a619081 1027
RexRoshan 0:99fa5a619081 1028 stage = 0;
RexRoshan 0:99fa5a619081 1029 return stage;
RexRoshan 0:99fa5a619081 1030 }