ELEC2645 (2018/19) / Mbed 2 deprecated 2645_Project_SiutingWong201186503

Dependencies:   mbed

Committer:
davidwst421
Date:
Thu May 09 07:53:59 2019 +0000
Revision:
15:749c595b19e2
Parent:
14:13e82f720bea
Child:
16:a5f5bc55d1bb
Final with Doxy & comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidwst421 0:fd8eda608206 1 #ifndef WALL_H
davidwst421 0:fd8eda608206 2 #define WALL_H
davidwst421 0:fd8eda608206 3
davidwst421 0:fd8eda608206 4 #include "mbed.h"
davidwst421 0:fd8eda608206 5 #include "N5110.h"
davidwst421 0:fd8eda608206 6 #include "Gamepad.h"
davidwst421 0:fd8eda608206 7
davidwst421 15:749c595b19e2 8 /** Wall class
davidwst421 15:749c595b19e2 9
davidwst421 15:749c595b19e2 10 @brief Class for listing the parameter of Wall and its characteristics
davidwst421 15:749c595b19e2 11
davidwst421 15:749c595b19e2 12 @version 0.56
davidwst421 15:749c595b19e2 13
davidwst421 15:749c595b19e2 14 @author Siuting Wong 201186503
davidwst421 15:749c595b19e2 15
davidwst421 15:749c595b19e2 16 @date 8th May 2019
davidwst421 15:749c595b19e2 17
davidwst421 15:749c595b19e2 18 @code
davidwst421 15:749c595b19e2 19
davidwst421 15:749c595b19e2 20 /////////////// structs /////////////////
davidwst421 15:749c595b19e2 21 struct UserInput {
davidwst421 15:749c595b19e2 22 Direction d;
davidwst421 15:749c595b19e2 23 float mag;
davidwst421 15:749c595b19e2 24 Vector2D mapped_coord;
davidwst421 15:749c595b19e2 25 };
davidwst421 15:749c595b19e2 26 /////////////// objects ///////////////
davidwst421 15:749c595b19e2 27 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
davidwst421 15:749c595b19e2 28 Gamepad pad;
davidwst421 15:749c595b19e2 29 Engine eng;
davidwst421 15:749c595b19e2 30
davidwst421 15:749c595b19e2 31 ///////////// prototypes ///////////////
davidwst421 15:749c595b19e2 32 void init();
davidwst421 15:749c595b19e2 33 void update_game(UserInput input);
davidwst421 15:749c595b19e2 34 void render();
davidwst421 15:749c595b19e2 35 void welcome();
davidwst421 15:749c595b19e2 36 void endgame();
davidwst421 15:749c595b19e2 37 void introduction();
davidwst421 15:749c595b19e2 38 void fingersnap();
davidwst421 15:749c595b19e2 39
davidwst421 15:749c595b19e2 40 ///////////// Images ///////////////
davidwst421 15:749c595b19e2 41 const int Avenger0[25][32] = {
davidwst421 15:749c595b19e2 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 },
davidwst421 15:749c595b19e2 43 { 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,0,0,0,0 },
davidwst421 15:749c595b19e2 44 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 45 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 46 { 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 47 { 0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 48 { 0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 49 { 0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 50 { 0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 51 { 0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 52 { 0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 53 { 0,0,0,1,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 54 { 0,0,1,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,0 },
davidwst421 15:749c595b19e2 55 { 0,0,1,1,1,0,1,1,0,0,0,1,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,1,1,0,0 },
davidwst421 15:749c595b19e2 56 { 0,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 57 { 0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 58 { 0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 59 { 0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 60 { 0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 61 { 0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 62 { 0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 63 { 0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 64 { 0,0,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 65 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 66 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 67 };
davidwst421 15:749c595b19e2 68
davidwst421 15:749c595b19e2 69 const int Avenger1[25][32] = {
davidwst421 15:749c595b19e2 70 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 71 { 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,0,0,0,0 },
davidwst421 15:749c595b19e2 72 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 73 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 74 { 0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 75 { 0,0,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0 },
davidwst421 15:749c595b19e2 76 { 0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,1,1,0,0 },
davidwst421 15:749c595b19e2 77 { 0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 78 { 0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 79 { 0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 80 { 0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 81 { 0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 82 { 0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 83 { 0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 84 { 0,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 85 { 0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,0,1,1,0,0,1,1,1,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 86 { 0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 87 { 0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 88 { 0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 89 { 0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0 },
davidwst421 15:749c595b19e2 90 { 0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0 },
davidwst421 15:749c595b19e2 91 { 0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0 },
davidwst421 15:749c595b19e2 92 { 0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 93 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 94 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 95 };
davidwst421 15:749c595b19e2 96
davidwst421 15:749c595b19e2 97 const int intro0[8][84] = {
davidwst421 15:749c595b19e2 98 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 99 { 0,0,0,0,0,0,1,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,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 },
davidwst421 15:749c595b19e2 100 { 0,0,0,1,0,0,0,0,1,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,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,1,1,0,0,0 },
davidwst421 15:749c595b19e2 101 { 0,0,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0 },
davidwst421 15:749c595b19e2 102 { 0,0,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0 },
davidwst421 15:749c595b19e2 103 { 0,0,0,1,0,0,0,0,1,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,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,1,1,0,0,0 },
davidwst421 15:749c595b19e2 104 { 0,0,0,0,0,0,1,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,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 },
davidwst421 15:749c595b19e2 105 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 106 };
davidwst421 15:749c595b19e2 107 const int intro1[8][84] = {
davidwst421 15:749c595b19e2 108 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 109 { 0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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 },
davidwst421 15:749c595b19e2 110 { 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,1,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,0,0,1,1,0,1,1,0,0,0 },
davidwst421 15:749c595b19e2 111 { 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,1,1,1,1,1,1,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,1,1,0,0,0,1,1,0,0 },
davidwst421 15:749c595b19e2 112 { 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,1,1,1,1,1,1,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,1,1,0,0,0,1,1,0,0 },
davidwst421 15:749c595b19e2 113 { 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,1,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,0,0,1,1,0,1,1,0,0,0 },
davidwst421 15:749c595b19e2 114 { 0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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 },
davidwst421 15:749c595b19e2 115 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 116 };
davidwst421 15:749c595b19e2 117 const int intro2[8][84] = {
davidwst421 15:749c595b19e2 118 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 119 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0 },
davidwst421 15:749c595b19e2 120 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0 },
davidwst421 15:749c595b19e2 121 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0 },
davidwst421 15:749c595b19e2 122 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0 },
davidwst421 15:749c595b19e2 123 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0 },
davidwst421 15:749c595b19e2 124 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0 },
davidwst421 15:749c595b19e2 125 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 126 };
davidwst421 15:749c595b19e2 127
davidwst421 15:749c595b19e2 128 const int intro3[16][18] = {
davidwst421 15:749c595b19e2 129 { 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 130 { 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 131 { 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0 },
davidwst421 15:749c595b19e2 132 { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0 },
davidwst421 15:749c595b19e2 133 { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0 },
davidwst421 15:749c595b19e2 134 { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 },
davidwst421 15:749c595b19e2 135 { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 },
davidwst421 15:749c595b19e2 136 { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
davidwst421 15:749c595b19e2 137 { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
davidwst421 15:749c595b19e2 138 { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 },
davidwst421 15:749c595b19e2 139 { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 },
davidwst421 15:749c595b19e2 140 { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0 },
davidwst421 15:749c595b19e2 141 { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0 },
davidwst421 15:749c595b19e2 142 { 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0 },
davidwst421 15:749c595b19e2 143 { 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 144 { 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
davidwst421 15:749c595b19e2 145 };
davidwst421 15:749c595b19e2 146
davidwst421 15:749c595b19e2 147 ///////////// functions ////////////////
davidwst421 15:749c595b19e2 148 int main() {
davidwst421 15:749c595b19e2 149 while (1) {
davidwst421 15:749c595b19e2 150 int fps = 6;
davidwst421 15:749c595b19e2 151
davidwst421 15:749c595b19e2 152 init(); // initialise and then display welcome screen...
davidwst421 15:749c595b19e2 153 welcome();
davidwst421 15:749c595b19e2 154 introduction(); // The intro of the story
davidwst421 15:749c595b19e2 155 render();
davidwst421 15:749c595b19e2 156 wait(1.0f/fps); // and wait for one frame period
davidwst421 15:749c595b19e2 157
davidwst421 15:749c595b19e2 158 while (1) {
davidwst421 15:749c595b19e2 159 eng.read_input(pad);
davidwst421 15:749c595b19e2 160 eng.update(pad);
davidwst421 15:749c595b19e2 161 render();
davidwst421 15:749c595b19e2 162 wait(1.0f/fps);
davidwst421 15:749c595b19e2 163 if (eng.get_score() < 3) { // setting diffculty regarding the current stone number
davidwst421 15:749c595b19e2 164 fps = 6;
davidwst421 15:749c595b19e2 165 }
davidwst421 15:749c595b19e2 166 if (eng.get_score() == 3) {
davidwst421 15:749c595b19e2 167 fps = 9;
davidwst421 15:749c595b19e2 168 }
davidwst421 15:749c595b19e2 169 if (eng.get_score() == 4) {
davidwst421 15:749c595b19e2 170 fps = 12;
davidwst421 15:749c595b19e2 171 }
davidwst421 15:749c595b19e2 172 if (eng.get_score() == 5) {
davidwst421 15:749c595b19e2 173 fps = 15;
davidwst421 15:749c595b19e2 174 }
davidwst421 15:749c595b19e2 175 if (eng.get_score() == 6) { // you win!!
davidwst421 15:749c595b19e2 176 fingersnap();
davidwst421 15:749c595b19e2 177 break;
davidwst421 15:749c595b19e2 178 } else if (eng.get_score() < 0) { // you lose :(
davidwst421 15:749c595b19e2 179 endgame();
davidwst421 15:749c595b19e2 180 break;
davidwst421 15:749c595b19e2 181 }
davidwst421 15:749c595b19e2 182 }
davidwst421 15:749c595b19e2 183 }
davidwst421 15:749c595b19e2 184 }
davidwst421 15:749c595b19e2 185
davidwst421 15:749c595b19e2 186 void init() {
davidwst421 15:749c595b19e2 187 // need to initialise LCD and Gamepad
davidwst421 15:749c595b19e2 188 lcd.init();
davidwst421 15:749c595b19e2 189 pad.init();
davidwst421 15:749c595b19e2 190
davidwst421 15:749c595b19e2 191 // initialise the game with correct ball and paddle sizes
davidwst421 15:749c595b19e2 192 eng.init(WALL_WIDTH,WALL_GAP,STONE_SIZE,SPEED);
davidwst421 15:749c595b19e2 193 }
davidwst421 15:749c595b19e2 194
davidwst421 15:749c595b19e2 195 void welcome() {
davidwst421 15:749c595b19e2 196 lcd.clear();
davidwst421 15:749c595b19e2 197 lcd.printString("Eternity Stone",0,0); //play messages
davidwst421 15:749c595b19e2 198 lcd.printString("Start story",9,4);
davidwst421 15:749c595b19e2 199 lcd.drawSprite(25,8,25,32,(int *)Avenger0);
davidwst421 15:749c595b19e2 200 lcd.refresh();
davidwst421 15:749c595b19e2 201 pad.tone(440.00,0.21); // adding avenger music
davidwst421 15:749c595b19e2 202 wait(0.21);
davidwst421 15:749c595b19e2 203 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 204 wait(0.63);
davidwst421 15:749c595b19e2 205 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 206 wait(0.06);
davidwst421 15:749c595b19e2 207 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 208 wait(0.63);
davidwst421 15:749c595b19e2 209 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 210 wait(0.06);
davidwst421 15:749c595b19e2 211 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 212 wait(0.63);
davidwst421 15:749c595b19e2 213 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 214 wait(0.06);
davidwst421 15:749c595b19e2 215 pad.tone(587.3,0.42);
davidwst421 15:749c595b19e2 216 wait(0.42);
davidwst421 15:749c595b19e2 217 pad.tone(880.0,0.21);
davidwst421 15:749c595b19e2 218 wait(0.21);
davidwst421 15:749c595b19e2 219 pad.tone(784.0,1.40);
davidwst421 15:749c595b19e2 220 wait(1.40);
davidwst421 15:749c595b19e2 221 pad.tone(698.5,0.70);
davidwst421 15:749c595b19e2 222 wait(0.70);
davidwst421 15:749c595b19e2 223 pad.tone(659.3,0.70);
davidwst421 15:749c595b19e2 224 wait(0.70);
davidwst421 15:749c595b19e2 225 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 226 wait(0.70);
davidwst421 15:749c595b19e2 227 while (pad.check_event(Gamepad::START_PRESSED) == false) { // animation loop until start button is pressed
davidwst421 15:749c595b19e2 228 lcd.clear();
davidwst421 15:749c595b19e2 229 lcd.printString("Eternity Stone",0,0);
davidwst421 15:749c595b19e2 230 lcd.printString("Start story",9,4);
davidwst421 15:749c595b19e2 231 lcd.drawSprite(25,8,25,32,(int *)Avenger0);
davidwst421 15:749c595b19e2 232 lcd.refresh();
davidwst421 15:749c595b19e2 233 wait(0.5);
davidwst421 15:749c595b19e2 234 lcd.clear();
davidwst421 15:749c595b19e2 235 lcd.printString("Eternity Stone",0,0);
davidwst421 15:749c595b19e2 236 lcd.printString("Start story",9,4);
davidwst421 15:749c595b19e2 237 lcd.drawSprite(25,8,25,32,(int *)Avenger1);
davidwst421 15:749c595b19e2 238 lcd.refresh();
davidwst421 15:749c595b19e2 239 wait(0.5);
davidwst421 15:749c595b19e2 240 }
davidwst421 15:749c595b19e2 241 }
davidwst421 15:749c595b19e2 242
davidwst421 15:749c595b19e2 243 void introduction() { // background story
davidwst421 15:749c595b19e2 244 lcd.clear();
davidwst421 15:749c595b19e2 245 lcd.printString("Five years",12,0);
davidwst421 15:749c595b19e2 246 lcd.refresh();
davidwst421 15:749c595b19e2 247 wait(1.0);
davidwst421 15:749c595b19e2 248 lcd.printString("Since Thanos",6,2);
davidwst421 15:749c595b19e2 249 lcd.printString("destroyed half",0,3);
davidwst421 15:749c595b19e2 250 lcd.printString("of all life",9,4);
davidwst421 15:749c595b19e2 251 lcd.printString("on Earth",18,5);
davidwst421 15:749c595b19e2 252 lcd.refresh();
davidwst421 15:749c595b19e2 253 wait(1.0);
davidwst421 15:749c595b19e2 254 lcd.printString("(Press start)",3,1);
davidwst421 15:749c595b19e2 255 wait(1.0);
davidwst421 15:749c595b19e2 256 while (pad.check_event(Gamepad::START_PRESSED) == false) { // while-looping until the button is on
davidwst421 15:749c595b19e2 257 lcd.refresh();
davidwst421 15:749c595b19e2 258 wait(0.5);
davidwst421 15:749c595b19e2 259 }
davidwst421 15:749c595b19e2 260
davidwst421 15:749c595b19e2 261 lcd.clear(); // background story
davidwst421 15:749c595b19e2 262 lcd.printString("You are a",12,0);
davidwst421 15:749c595b19e2 263 lcd.printString("member of",15,1);
davidwst421 15:749c595b19e2 264 lcd.printString("Avengers and",6,2);
davidwst421 15:749c595b19e2 265 lcd.printString("you need to",9,3);
davidwst421 15:749c595b19e2 266 lcd.printString("time travel in",0,4);
davidwst421 15:749c595b19e2 267 lcd.printString("Quantum realm",3,5);
davidwst421 15:749c595b19e2 268 lcd.refresh();
davidwst421 15:749c595b19e2 269 wait(1.0);
davidwst421 15:749c595b19e2 270 while ( pad.check_event(Gamepad::START_PRESSED) == false) { // while-looping until the button is on
davidwst421 15:749c595b19e2 271 lcd.refresh();
davidwst421 15:749c595b19e2 272 wait(0.5);
davidwst421 15:749c595b19e2 273 }
davidwst421 15:749c595b19e2 274
davidwst421 15:749c595b19e2 275 while (pad.check_event(Gamepad::START_PRESSED) == false) { // tutorial with animation
davidwst421 15:749c595b19e2 276 lcd.clear();
davidwst421 15:749c595b19e2 277 lcd.printString("Use your",18,0);
davidwst421 15:749c595b19e2 278 lcd.printString("joystick to",9,1);
davidwst421 15:749c595b19e2 279 lcd.printString("send yourself",3,2);
davidwst421 15:749c595b19e2 280 lcd.printString("to the right",6,3);
davidwst421 15:749c595b19e2 281 lcd.printString("Wormhole",18,4);
davidwst421 15:749c595b19e2 282 lcd.drawSprite(0,40,8,84,(int *)intro0);
davidwst421 15:749c595b19e2 283 lcd.refresh();
davidwst421 15:749c595b19e2 284 wait(0.5);
davidwst421 15:749c595b19e2 285 lcd.clear();
davidwst421 15:749c595b19e2 286 lcd.printString("Use your",18,0);
davidwst421 15:749c595b19e2 287 lcd.printString("joystick to",9,1);
davidwst421 15:749c595b19e2 288 lcd.printString("send yourself",3,2);
davidwst421 15:749c595b19e2 289 lcd.printString("to the right",6,3);
davidwst421 15:749c595b19e2 290 lcd.printString("Wormhole",18,4);
davidwst421 15:749c595b19e2 291 lcd.drawSprite(0,40,8,84,(int *)intro1);
davidwst421 15:749c595b19e2 292 lcd.refresh();
davidwst421 15:749c595b19e2 293 wait(0.5);
davidwst421 15:749c595b19e2 294 lcd.clear();
davidwst421 15:749c595b19e2 295 lcd.printString("Use your",18,0);
davidwst421 15:749c595b19e2 296 lcd.printString("joystick to",9,1);
davidwst421 15:749c595b19e2 297 lcd.printString("send yourself",3,2);
davidwst421 15:749c595b19e2 298 lcd.printString("to the right",6,3);
davidwst421 15:749c595b19e2 299 lcd.printString("Wormhole",18,4);
davidwst421 15:749c595b19e2 300 lcd.drawSprite(0,40,8,84,(int *)intro2);
davidwst421 15:749c595b19e2 301 lcd.refresh();
davidwst421 15:749c595b19e2 302 wait(0.5);
davidwst421 15:749c595b19e2 303 }
davidwst421 15:749c595b19e2 304
davidwst421 15:749c595b19e2 305 while (pad.check_event(Gamepad::START_PRESSED) == false) { // tutorial with animation
davidwst421 15:749c595b19e2 306 lcd.clear();
davidwst421 15:749c595b19e2 307 lcd.printString("try not to",12,0);
davidwst421 15:749c595b19e2 308 lcd.printString("interrupt",15,1);
davidwst421 15:749c595b19e2 309 lcd.printString("the time",0,2);
davidwst421 15:749c595b19e2 310 lcd.printString("line but",0,3);
davidwst421 15:749c595b19e2 311 lcd.printString("pass thro.",12,4);
davidwst421 15:749c595b19e2 312 lcd.printString("the gap",21,5);
davidwst421 15:749c595b19e2 313 lcd.drawSprite(54,16,16,18,(int *)intro3);
davidwst421 15:749c595b19e2 314 lcd.drawRect(77,0,2,18,FILL_BLACK);
davidwst421 15:749c595b19e2 315 lcd.drawRect(77,30,2,18,FILL_BLACK);
davidwst421 15:749c595b19e2 316 lcd.refresh();
davidwst421 15:749c595b19e2 317 wait(0.5);
davidwst421 15:749c595b19e2 318 lcd.clear();
davidwst421 15:749c595b19e2 319 lcd.printString("try not to",12,0);
davidwst421 15:749c595b19e2 320 lcd.printString("interrupt",15,1);
davidwst421 15:749c595b19e2 321 lcd.printString("the time",0,2);
davidwst421 15:749c595b19e2 322 lcd.printString("line but",0,3);
davidwst421 15:749c595b19e2 323 lcd.printString("pass thro.",12,4);
davidwst421 15:749c595b19e2 324 lcd.printString("the gap",21,5);
davidwst421 15:749c595b19e2 325 lcd.drawSprite(60,16,16,18,(int *)intro3);
davidwst421 15:749c595b19e2 326 lcd.drawRect(77,0,2,18,FILL_BLACK);
davidwst421 15:749c595b19e2 327 lcd.drawRect(77,30,2,18,FILL_BLACK);
davidwst421 15:749c595b19e2 328 lcd.refresh();
davidwst421 15:749c595b19e2 329 wait(0.5);
davidwst421 15:749c595b19e2 330 }
davidwst421 15:749c595b19e2 331
davidwst421 15:749c595b19e2 332 lcd.clear(); // last message before the game begins
davidwst421 15:749c595b19e2 333 lcd.printString("retrieve 6",12,0);
davidwst421 15:749c595b19e2 334 lcd.printString("stones and",12,1);
davidwst421 15:749c595b19e2 335 lcd.printString("win the game",6,2);
davidwst421 15:749c595b19e2 336 lcd.printString("God speed",15,3);
davidwst421 15:749c595b19e2 337 lcd.printString("Avengers!",15,4);
davidwst421 15:749c595b19e2 338 lcd.refresh();
davidwst421 15:749c595b19e2 339 wait(0.5);
davidwst421 15:749c595b19e2 340
davidwst421 15:749c595b19e2 341 while (pad.check_event(Gamepad::START_PRESSED) == false) { //sparking leds
davidwst421 15:749c595b19e2 342 pad.leds_on();
davidwst421 15:749c595b19e2 343 wait(0.25);
davidwst421 15:749c595b19e2 344 pad.leds_off();
davidwst421 15:749c595b19e2 345 wait(0.25);
davidwst421 15:749c595b19e2 346 }
davidwst421 15:749c595b19e2 347 }
davidwst421 15:749c595b19e2 348
davidwst421 15:749c595b19e2 349 void render() {
davidwst421 15:749c595b19e2 350 // clear screen, re-draw and refresh
davidwst421 15:749c595b19e2 351 lcd.clear();
davidwst421 15:749c595b19e2 352 eng.draw(lcd);
davidwst421 15:749c595b19e2 353 lcd.refresh();
davidwst421 15:749c595b19e2 354 }
davidwst421 15:749c595b19e2 355
davidwst421 15:749c595b19e2 356 void fingersnap() {
davidwst421 15:749c595b19e2 357 lcd.clear(); // at this point the game has broken the while loop, clear screen to display congrat message
davidwst421 15:749c595b19e2 358 lcd.printString("Congrat!!",15,0);
davidwst421 15:749c595b19e2 359 lcd.printString("Credit: STWong",0,1);
davidwst421 15:749c595b19e2 360 lcd.printString("201186503",15,2);
davidwst421 15:749c595b19e2 361 lcd.refresh();
davidwst421 15:749c595b19e2 362
davidwst421 15:749c595b19e2 363 pad.tone(440.00,0.21); // avenger theme again
davidwst421 15:749c595b19e2 364 wait(0.21);
davidwst421 15:749c595b19e2 365 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 366 wait(0.63);
davidwst421 15:749c595b19e2 367 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 368 wait(0.06);
davidwst421 15:749c595b19e2 369 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 370 wait(0.63);
davidwst421 15:749c595b19e2 371 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 372 wait(0.06);
davidwst421 15:749c595b19e2 373 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 374 wait(0.63);
davidwst421 15:749c595b19e2 375 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 376 wait(0.06);
davidwst421 15:749c595b19e2 377 pad.tone(587.3,0.42);
davidwst421 15:749c595b19e2 378 wait(0.42);
davidwst421 15:749c595b19e2 379 pad.tone(880.0,0.21);
davidwst421 15:749c595b19e2 380 wait(0.21);
davidwst421 15:749c595b19e2 381 pad.tone(784.0,1.40);
davidwst421 15:749c595b19e2 382 wait(1.40);
davidwst421 15:749c595b19e2 383 pad.tone(698.5,0.70);
davidwst421 15:749c595b19e2 384 wait(0.70);
davidwst421 15:749c595b19e2 385 pad.tone(659.3,0.70);
davidwst421 15:749c595b19e2 386 wait(0.70);
davidwst421 15:749c595b19e2 387 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 388 wait(0.70);
davidwst421 15:749c595b19e2 389 while (pad.check_event(Gamepad::START_PRESSED) == false) { // enter loop waiting to restart the game
davidwst421 15:749c595b19e2 390 lcd.printString("press start",9,4);
davidwst421 15:749c595b19e2 391 lcd.printString("to return",15,5);
davidwst421 15:749c595b19e2 392 lcd.refresh();
davidwst421 15:749c595b19e2 393 pad.leds_on();
davidwst421 15:749c595b19e2 394 wait(0.5);
davidwst421 15:749c595b19e2 395 pad.leds_off();
davidwst421 15:749c595b19e2 396 wait(0.5);
davidwst421 15:749c595b19e2 397 }
davidwst421 15:749c595b19e2 398 }
davidwst421 15:749c595b19e2 399
davidwst421 15:749c595b19e2 400 void endgame() {
davidwst421 15:749c595b19e2 401 lcd.clear(); //break the while loop and enter gameover
davidwst421 15:749c595b19e2 402 lcd.printString("Mr.Stark",18,1);
davidwst421 15:749c595b19e2 403 lcd.printString("I don't feel",6,2);
davidwst421 15:749c595b19e2 404 lcd.printString("so good ...",9,3);
davidwst421 15:749c595b19e2 405 lcd.refresh();
davidwst421 15:749c595b19e2 406
davidwst421 15:749c595b19e2 407 pad.tone(587.3,0.63); // play sad music when lose
davidwst421 15:749c595b19e2 408 wait(0.63);
davidwst421 15:749c595b19e2 409 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 410 wait(0.06);
davidwst421 15:749c595b19e2 411 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 412 wait(0.63);
davidwst421 15:749c595b19e2 413 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 414 wait(0.06);
davidwst421 15:749c595b19e2 415 pad.tone(587.3,0.63);
davidwst421 15:749c595b19e2 416 wait(0.63);
davidwst421 15:749c595b19e2 417 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 418 wait(0.06);
davidwst421 15:749c595b19e2 419 pad.tone(698.5,0.42);
davidwst421 15:749c595b19e2 420 wait(0.42);
davidwst421 15:749c595b19e2 421 pad.tone(659.3,0.21);
davidwst421 15:749c595b19e2 422 wait(0.21);
davidwst421 15:749c595b19e2 423 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 424 wait(0.06);
davidwst421 15:749c595b19e2 425 pad.tone(659.3,0.42);
davidwst421 15:749c595b19e2 426 wait(0.42);
davidwst421 15:749c595b19e2 427 pad.tone(587.3,0.21);
davidwst421 15:749c595b19e2 428 wait(0.21);
davidwst421 15:749c595b19e2 429 pad.tone(0.0,0.06);
davidwst421 15:749c595b19e2 430 wait(0.06);
davidwst421 15:749c595b19e2 431 pad.tone(587.3,0.42);
davidwst421 15:749c595b19e2 432 wait(0.42);
davidwst421 15:749c595b19e2 433 pad.tone(554.4,0.21);
davidwst421 15:749c595b19e2 434 wait(0.21);
davidwst421 15:749c595b19e2 435 pad.tone(587.3,0.42);
davidwst421 15:749c595b19e2 436 wait(0.42);
davidwst421 15:749c595b19e2 437 while (pad.check_event(Gamepad::START_PRESSED) == false) { // enter loop waiting to restart the game
davidwst421 15:749c595b19e2 438 lcd.printString("press start",9,4);
davidwst421 15:749c595b19e2 439 lcd.printString("to return",15,5);
davidwst421 15:749c595b19e2 440 lcd.refresh();
davidwst421 15:749c595b19e2 441 wait(0.5);
davidwst421 15:749c595b19e2 442 }
davidwst421 15:749c595b19e2 443 }
davidwst421 15:749c595b19e2 444
davidwst421 15:749c595b19e2 445 @endcode
davidwst421 15:749c595b19e2 446 */
davidwst421 15:749c595b19e2 447
davidwst421 0:fd8eda608206 448 class Wall
davidwst421 0:fd8eda608206 449 {
davidwst421 0:fd8eda608206 450
davidwst421 0:fd8eda608206 451 public:
davidwst421 0:fd8eda608206 452 Wall();
davidwst421 0:fd8eda608206 453 ~Wall();
davidwst421 15:749c595b19e2 454 // constructors
davidwst421 15:749c595b19e2 455 /**
davidwst421 15:749c595b19e2 456 * @brief Initiates the parameters for every objects
davidwst421 15:749c595b19e2 457 * @param x @details Vertical position of Wall
davidwst421 15:749c595b19e2 458 * @param gap @details Gap of Wall
davidwst421 15:749c595b19e2 459 * @param width @details Width of Wall
davidwst421 15:749c595b19e2 460 * @param speed @details Speed of Wall
davidwst421 15:749c595b19e2 461 */
davidwst421 0:fd8eda608206 462 void init(int x,int gap,int width,int speed);
davidwst421 15:749c595b19e2 463 /**
davidwst421 15:749c595b19e2 464 * @brief Draws the wall near the top first on the LCD
davidwst421 15:749c595b19e2 465 * @param N5110 @details LCD screen
davidwst421 15:749c595b19e2 466 */
davidwst421 0:fd8eda608206 467 void draw1(N5110 &lcd);
davidwst421 15:749c595b19e2 468 /**
davidwst421 15:749c595b19e2 469 * @brief Draws the wall near the bottom then
davidwst421 15:749c595b19e2 470 * @param N5110 @details LCD screen
davidwst421 15:749c595b19e2 471 */
davidwst421 0:fd8eda608206 472 void draw2(N5110 &lcd);
davidwst421 15:749c595b19e2 473 /**
davidwst421 15:749c595b19e2 474 * @brief Updates the new corrdinate of Wall
davidwst421 15:749c595b19e2 475 * @returns The new coordinate of Wall
davidwst421 15:749c595b19e2 476 */
davidwst421 0:fd8eda608206 477 void update();
davidwst421 15:749c595b19e2 478 /**
davidwst421 15:749c595b19e2 479 * @brief Resets the new corrdinate of Wall
davidwst421 15:749c595b19e2 480 * @returns The original coordinate of Wall
davidwst421 15:749c595b19e2 481 */
davidwst421 0:fd8eda608206 482 void reset();
davidwst421 15:749c595b19e2 483 /**
davidwst421 15:749c595b19e2 484 * @brief Gets the vertical position of Wall
davidwst421 15:749c595b19e2 485 * @returns The vertical position of Wall
davidwst421 15:749c595b19e2 486 */
davidwst421 1:f09ff0ed98fd 487 int get_x();
davidwst421 15:749c595b19e2 488 /**
davidwst421 15:749c595b19e2 489 * @brief Gets the vertical length of Wall
davidwst421 15:749c595b19e2 490 * @returns The vertical length of Wall
davidwst421 15:749c595b19e2 491 */
davidwst421 1:f09ff0ed98fd 492 int get_height();
davidwst421 0:fd8eda608206 493
davidwst421 0:fd8eda608206 494 private:
davidwst421 14:13e82f720bea 495 // parameters of the walls
davidwst421 0:fd8eda608206 496 int _height;
davidwst421 0:fd8eda608206 497 int _width;
davidwst421 0:fd8eda608206 498 int _x;
davidwst421 0:fd8eda608206 499 int _y;
davidwst421 0:fd8eda608206 500 int _speed;
davidwst421 1:f09ff0ed98fd 501 int _gap;
davidwst421 0:fd8eda608206 502 };
davidwst421 0:fd8eda608206 503 #endif