Rex Raj / Mbed 2 deprecated el17rrrs

Dependencies:   mbed Gamepad N5110 mbed-rtos

Committer:
RexRoshan
Date:
Fri Apr 19 13:43:22 2019 +0000
Revision:
1:45493d1d0689
Parent:
0:99fa5a619081
Child:
2:b5c1bb7a39de
The Instruction page is not being drawn although the switch state works;

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