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

Dependencies:   mbed

Committer:
davidwst421
Date:
Thu May 09 08:20:36 2019 +0000
Revision:
16:a5f5bc55d1bb
Parent:
15:749c595b19e2
Last version with Doxygen & comments

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 16:a5f5bc55d1bb 9 *
davidwst421 16:a5f5bc55d1bb 10 * @brief Class for listing the parameter of Wall and its characteristics
davidwst421 16:a5f5bc55d1bb 11 *
davidwst421 16:a5f5bc55d1bb 12 * @version 0.56
davidwst421 16:a5f5bc55d1bb 13 *
davidwst421 16:a5f5bc55d1bb 14 * @author Siuting Wong 201186503
davidwst421 16:a5f5bc55d1bb 15 *
davidwst421 16:a5f5bc55d1bb 16 * @date 8th May 2019
davidwst421 16:a5f5bc55d1bb 17 *
davidwst421 16:a5f5bc55d1bb 18 * @code
davidwst421 16:a5f5bc55d1bb 19 *
davidwst421 16:a5f5bc55d1bb 20 * /////////////// structs /////////////////
davidwst421 16:a5f5bc55d1bb 21 * struct UserInput {
davidwst421 16:a5f5bc55d1bb 22 * Direction d;
davidwst421 16:a5f5bc55d1bb 23 * float mag;
davidwst421 16:a5f5bc55d1bb 24 * Vector2D mapped_coord;
davidwst421 16:a5f5bc55d1bb 25 * };
davidwst421 16:a5f5bc55d1bb 26 * /////////////// objects ///////////////
davidwst421 16:a5f5bc55d1bb 27 * N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
davidwst421 16:a5f5bc55d1bb 28 * Gamepad pad;
davidwst421 16:a5f5bc55d1bb 29 * Engine eng;
davidwst421 16:a5f5bc55d1bb 30 *
davidwst421 16:a5f5bc55d1bb 31 * ///////////// prototypes ///////////////
davidwst421 16:a5f5bc55d1bb 32 * void init();
davidwst421 16:a5f5bc55d1bb 33 * void update_game(UserInput input);
davidwst421 16:a5f5bc55d1bb 34 * void render();
davidwst421 16:a5f5bc55d1bb 35 * void welcome();
davidwst421 16:a5f5bc55d1bb 36 * void endgame();
davidwst421 16:a5f5bc55d1bb 37 * void introduction();
davidwst421 16:a5f5bc55d1bb 38 * void fingersnap();
davidwst421 16:a5f5bc55d1bb 39 *
davidwst421 16:a5f5bc55d1bb 40 * ///////////// Images ///////////////
davidwst421 16:a5f5bc55d1bb 41 * const int Avenger0[25][32] = {
davidwst421 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 67 * };
davidwst421 16:a5f5bc55d1bb 68 *
davidwst421 16:a5f5bc55d1bb 69 * const int Avenger1[25][32] = {
davidwst421 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 95 * };
davidwst421 16:a5f5bc55d1bb 96 *
davidwst421 16:a5f5bc55d1bb 97 * const int intro0[8][84] = {
davidwst421 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 106 * };
davidwst421 16:a5f5bc55d1bb 107 * const int intro1[8][84] = {
davidwst421 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 116 * };
davidwst421 16:a5f5bc55d1bb 117 * const int intro2[8][84] = {
davidwst421 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 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 16:a5f5bc55d1bb 126 * };
davidwst421 16:a5f5bc55d1bb 127 *
davidwst421 16:a5f5bc55d1bb 128 * const int intro3[16][18] = {
davidwst421 16:a5f5bc55d1bb 129 * { 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 130 * { 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 131 * { 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 132 * { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 133 * { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0 },
davidwst421 16:a5f5bc55d1bb 134 * { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 },
davidwst421 16:a5f5bc55d1bb 135 * { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 },
davidwst421 16:a5f5bc55d1bb 136 * { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
davidwst421 16:a5f5bc55d1bb 137 * { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
davidwst421 16:a5f5bc55d1bb 138 * { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 },
davidwst421 16:a5f5bc55d1bb 139 * { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 },
davidwst421 16:a5f5bc55d1bb 140 * { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0 },
davidwst421 16:a5f5bc55d1bb 141 * { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 142 * { 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 143 * { 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 144 * { 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
davidwst421 16:a5f5bc55d1bb 145 * };
davidwst421 16:a5f5bc55d1bb 146 *
davidwst421 16:a5f5bc55d1bb 147 * ///////////// functions ////////////////
davidwst421 16:a5f5bc55d1bb 148 * int main() {
davidwst421 16:a5f5bc55d1bb 149 * while (1) {
davidwst421 16:a5f5bc55d1bb 150 * int fps = 6;
davidwst421 16:a5f5bc55d1bb 151 *
davidwst421 16:a5f5bc55d1bb 152 * init(); // initialise and then display welcome screen...
davidwst421 16:a5f5bc55d1bb 153 * welcome();
davidwst421 16:a5f5bc55d1bb 154 * introduction(); // The intro of the story
davidwst421 16:a5f5bc55d1bb 155 * render();
davidwst421 16:a5f5bc55d1bb 156 * wait(1.0f/fps); // and wait for one frame period
davidwst421 16:a5f5bc55d1bb 157 *
davidwst421 16:a5f5bc55d1bb 158 * while (1) {
davidwst421 16:a5f5bc55d1bb 159 * eng.read_input(pad);
davidwst421 16:a5f5bc55d1bb 160 * eng.update(pad);
davidwst421 16:a5f5bc55d1bb 161 * render();
davidwst421 16:a5f5bc55d1bb 162 * wait(1.0f/fps);
davidwst421 16:a5f5bc55d1bb 163 * if (eng.get_score() < 3) { // setting diffculty regarding the current stone number
davidwst421 16:a5f5bc55d1bb 164 * fps = 6;
davidwst421 16:a5f5bc55d1bb 165 * }
davidwst421 16:a5f5bc55d1bb 166 * if (eng.get_score() == 3) {
davidwst421 16:a5f5bc55d1bb 167 * fps = 9;
davidwst421 16:a5f5bc55d1bb 168 * }
davidwst421 16:a5f5bc55d1bb 169 * if (eng.get_score() == 4) {
davidwst421 16:a5f5bc55d1bb 170 * fps = 12;
davidwst421 16:a5f5bc55d1bb 171 * }
davidwst421 16:a5f5bc55d1bb 172 * if (eng.get_score() == 5) {
davidwst421 16:a5f5bc55d1bb 173 * fps = 15;
davidwst421 16:a5f5bc55d1bb 174 * }
davidwst421 16:a5f5bc55d1bb 175 * if (eng.get_score() == 6) { // you win!!
davidwst421 16:a5f5bc55d1bb 176 * fingersnap();
davidwst421 16:a5f5bc55d1bb 177 * break;
davidwst421 16:a5f5bc55d1bb 178 * } else if (eng.get_score() < 0) { // you lose :(
davidwst421 16:a5f5bc55d1bb 179 * endgame();
davidwst421 16:a5f5bc55d1bb 180 * break;
davidwst421 16:a5f5bc55d1bb 181 * }
davidwst421 16:a5f5bc55d1bb 182 * }
davidwst421 16:a5f5bc55d1bb 183 * }
davidwst421 16:a5f5bc55d1bb 184 * }
davidwst421 16:a5f5bc55d1bb 185 *
davidwst421 16:a5f5bc55d1bb 186 * void init() {
davidwst421 16:a5f5bc55d1bb 187 * // need to initialise LCD and Gamepad
davidwst421 16:a5f5bc55d1bb 188 * lcd.init();
davidwst421 16:a5f5bc55d1bb 189 * pad.init();
davidwst421 16:a5f5bc55d1bb 190 *
davidwst421 16:a5f5bc55d1bb 191 * // initialise the game with correct ball and paddle sizes
davidwst421 16:a5f5bc55d1bb 192 * eng.init(WALL_WIDTH,WALL_GAP,STONE_SIZE,SPEED);
davidwst421 16:a5f5bc55d1bb 193 * }
davidwst421 16:a5f5bc55d1bb 194 *
davidwst421 16:a5f5bc55d1bb 195 * void welcome() {
davidwst421 16:a5f5bc55d1bb 196 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 197 * lcd.printString("Eternity Stone",0,0); //play messages
davidwst421 16:a5f5bc55d1bb 198 * lcd.printString("Start story",9,4);
davidwst421 16:a5f5bc55d1bb 199 * lcd.drawSprite(25,8,25,32,(int *)Avenger0);
davidwst421 16:a5f5bc55d1bb 200 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 201 * pad.tone(440.00,0.21); // adding avenger music
davidwst421 16:a5f5bc55d1bb 202 * wait(0.21);
davidwst421 16:a5f5bc55d1bb 203 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 204 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 205 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 206 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 207 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 208 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 209 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 210 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 211 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 212 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 213 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 214 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 215 * pad.tone(587.3,0.42);
davidwst421 16:a5f5bc55d1bb 216 * wait(0.42);
davidwst421 16:a5f5bc55d1bb 217 * pad.tone(880.0,0.21);
davidwst421 16:a5f5bc55d1bb 218 * wait(0.21);
davidwst421 16:a5f5bc55d1bb 219 * pad.tone(784.0,1.40);
davidwst421 16:a5f5bc55d1bb 220 * wait(1.40);
davidwst421 16:a5f5bc55d1bb 221 * pad.tone(698.5,0.70);
davidwst421 16:a5f5bc55d1bb 222 * wait(0.70);
davidwst421 16:a5f5bc55d1bb 223 * pad.tone(659.3,0.70);
davidwst421 16:a5f5bc55d1bb 224 * wait(0.70);
davidwst421 16:a5f5bc55d1bb 225 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 226 * wait(0.70);
davidwst421 16:a5f5bc55d1bb 227 * while (pad.check_event(Gamepad::START_PRESSED) == false) { // animation loop until start button is pressed
davidwst421 16:a5f5bc55d1bb 228 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 229 * lcd.printString("Eternity Stone",0,0);
davidwst421 16:a5f5bc55d1bb 230 * lcd.printString("Start story",9,4);
davidwst421 16:a5f5bc55d1bb 231 * lcd.drawSprite(25,8,25,32,(int *)Avenger0);
davidwst421 16:a5f5bc55d1bb 232 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 233 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 234 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 235 * lcd.printString("Eternity Stone",0,0);
davidwst421 16:a5f5bc55d1bb 236 * lcd.printString("Start story",9,4);
davidwst421 16:a5f5bc55d1bb 237 * lcd.drawSprite(25,8,25,32,(int *)Avenger1);
davidwst421 16:a5f5bc55d1bb 238 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 239 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 240 * }
davidwst421 16:a5f5bc55d1bb 241 * }
davidwst421 16:a5f5bc55d1bb 242 *
davidwst421 16:a5f5bc55d1bb 243 * void introduction() { // background story
davidwst421 16:a5f5bc55d1bb 244 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 245 * lcd.printString("Five years",12,0);
davidwst421 16:a5f5bc55d1bb 246 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 247 * wait(1.0);
davidwst421 16:a5f5bc55d1bb 248 * lcd.printString("Since Thanos",6,2);
davidwst421 16:a5f5bc55d1bb 249 * lcd.printString("destroyed half",0,3);
davidwst421 16:a5f5bc55d1bb 250 * lcd.printString("of all life",9,4);
davidwst421 16:a5f5bc55d1bb 251 * lcd.printString("on Earth",18,5);
davidwst421 16:a5f5bc55d1bb 252 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 253 * wait(1.0);
davidwst421 16:a5f5bc55d1bb 254 * lcd.printString("(Press start)",3,1);
davidwst421 16:a5f5bc55d1bb 255 * wait(1.0);
davidwst421 16:a5f5bc55d1bb 256 * while (pad.check_event(Gamepad::START_PRESSED) == false) { // while-looping until the button is on
davidwst421 16:a5f5bc55d1bb 257 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 258 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 259 * }
davidwst421 16:a5f5bc55d1bb 260 *
davidwst421 16:a5f5bc55d1bb 261 * lcd.clear(); // background story
davidwst421 16:a5f5bc55d1bb 262 * lcd.printString("You are a",12,0);
davidwst421 16:a5f5bc55d1bb 263 * lcd.printString("member of",15,1);
davidwst421 16:a5f5bc55d1bb 264 * lcd.printString("Avengers and",6,2);
davidwst421 16:a5f5bc55d1bb 265 * lcd.printString("you need to",9,3);
davidwst421 16:a5f5bc55d1bb 266 * lcd.printString("time travel in",0,4);
davidwst421 16:a5f5bc55d1bb 267 * lcd.printString("Quantum realm",3,5);
davidwst421 16:a5f5bc55d1bb 268 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 269 * wait(1.0);
davidwst421 16:a5f5bc55d1bb 270 * while ( pad.check_event(Gamepad::START_PRESSED) == false) { // while-looping until the button is on
davidwst421 16:a5f5bc55d1bb 271 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 272 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 273 * }
davidwst421 16:a5f5bc55d1bb 274 *
davidwst421 16:a5f5bc55d1bb 275 * while (pad.check_event(Gamepad::START_PRESSED) == false) { // tutorial with animation
davidwst421 16:a5f5bc55d1bb 276 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 277 * lcd.printString("Use your",18,0);
davidwst421 16:a5f5bc55d1bb 278 * lcd.printString("joystick to",9,1);
davidwst421 16:a5f5bc55d1bb 279 * lcd.printString("send yourself",3,2);
davidwst421 16:a5f5bc55d1bb 280 * lcd.printString("to the right",6,3);
davidwst421 16:a5f5bc55d1bb 281 * lcd.printString("Wormhole",18,4);
davidwst421 16:a5f5bc55d1bb 282 * lcd.drawSprite(0,40,8,84,(int *)intro0);
davidwst421 16:a5f5bc55d1bb 283 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 284 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 285 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 286 * lcd.printString("Use your",18,0);
davidwst421 16:a5f5bc55d1bb 287 * lcd.printString("joystick to",9,1);
davidwst421 16:a5f5bc55d1bb 288 * lcd.printString("send yourself",3,2);
davidwst421 16:a5f5bc55d1bb 289 * lcd.printString("to the right",6,3);
davidwst421 16:a5f5bc55d1bb 290 * lcd.printString("Wormhole",18,4);
davidwst421 16:a5f5bc55d1bb 291 * lcd.drawSprite(0,40,8,84,(int *)intro1);
davidwst421 16:a5f5bc55d1bb 292 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 293 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 294 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 295 * lcd.printString("Use your",18,0);
davidwst421 16:a5f5bc55d1bb 296 * lcd.printString("joystick to",9,1);
davidwst421 16:a5f5bc55d1bb 297 * lcd.printString("send yourself",3,2);
davidwst421 16:a5f5bc55d1bb 298 * lcd.printString("to the right",6,3);
davidwst421 16:a5f5bc55d1bb 299 * lcd.printString("Wormhole",18,4);
davidwst421 16:a5f5bc55d1bb 300 * lcd.drawSprite(0,40,8,84,(int *)intro2);
davidwst421 16:a5f5bc55d1bb 301 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 302 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 303 * }
davidwst421 16:a5f5bc55d1bb 304 *
davidwst421 16:a5f5bc55d1bb 305 * while (pad.check_event(Gamepad::START_PRESSED) == false) { // tutorial with animation
davidwst421 16:a5f5bc55d1bb 306 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 307 * lcd.printString("try not to",12,0);
davidwst421 16:a5f5bc55d1bb 308 * lcd.printString("interrupt",15,1);
davidwst421 16:a5f5bc55d1bb 309 * lcd.printString("the time",0,2);
davidwst421 16:a5f5bc55d1bb 310 * lcd.printString("line but",0,3);
davidwst421 16:a5f5bc55d1bb 311 * lcd.printString("pass thro.",12,4);
davidwst421 16:a5f5bc55d1bb 312 * lcd.printString("the gap",21,5);
davidwst421 16:a5f5bc55d1bb 313 * lcd.drawSprite(54,16,16,18,(int *)intro3);
davidwst421 16:a5f5bc55d1bb 314 * lcd.drawRect(77,0,2,18,FILL_BLACK);
davidwst421 16:a5f5bc55d1bb 315 * lcd.drawRect(77,30,2,18,FILL_BLACK);
davidwst421 16:a5f5bc55d1bb 316 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 317 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 318 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 319 * lcd.printString("try not to",12,0);
davidwst421 16:a5f5bc55d1bb 320 * lcd.printString("interrupt",15,1);
davidwst421 16:a5f5bc55d1bb 321 * lcd.printString("the time",0,2);
davidwst421 16:a5f5bc55d1bb 322 * lcd.printString("line but",0,3);
davidwst421 16:a5f5bc55d1bb 323 * lcd.printString("pass thro.",12,4);
davidwst421 16:a5f5bc55d1bb 324 * lcd.printString("the gap",21,5);
davidwst421 16:a5f5bc55d1bb 325 * lcd.drawSprite(60,16,16,18,(int *)intro3);
davidwst421 16:a5f5bc55d1bb 326 * lcd.drawRect(77,0,2,18,FILL_BLACK);
davidwst421 16:a5f5bc55d1bb 327 * lcd.drawRect(77,30,2,18,FILL_BLACK);
davidwst421 16:a5f5bc55d1bb 328 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 329 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 330 * }
davidwst421 16:a5f5bc55d1bb 331 *
davidwst421 16:a5f5bc55d1bb 332 * lcd.clear(); // last message before the game begins
davidwst421 16:a5f5bc55d1bb 333 * lcd.printString("retrieve 6",12,0);
davidwst421 16:a5f5bc55d1bb 334 * lcd.printString("stones and",12,1);
davidwst421 16:a5f5bc55d1bb 335 * lcd.printString("win the game",6,2);
davidwst421 16:a5f5bc55d1bb 336 * lcd.printString("God speed",15,3);
davidwst421 16:a5f5bc55d1bb 337 * lcd.printString("Avengers!",15,4);
davidwst421 16:a5f5bc55d1bb 338 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 339 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 340 *
davidwst421 16:a5f5bc55d1bb 341 * while (pad.check_event(Gamepad::START_PRESSED) == false) { //sparking leds
davidwst421 16:a5f5bc55d1bb 342 * pad.leds_on();
davidwst421 16:a5f5bc55d1bb 343 * wait(0.25);
davidwst421 16:a5f5bc55d1bb 344 * pad.leds_off();
davidwst421 16:a5f5bc55d1bb 345 * wait(0.25);
davidwst421 16:a5f5bc55d1bb 346 * }
davidwst421 16:a5f5bc55d1bb 347 * }
davidwst421 16:a5f5bc55d1bb 348 *
davidwst421 16:a5f5bc55d1bb 349 * void render() {
davidwst421 16:a5f5bc55d1bb 350 * // clear screen, re-draw and refresh
davidwst421 16:a5f5bc55d1bb 351 * lcd.clear();
davidwst421 16:a5f5bc55d1bb 352 * eng.draw(lcd);
davidwst421 16:a5f5bc55d1bb 353 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 354 * }
davidwst421 16:a5f5bc55d1bb 355 *
davidwst421 16:a5f5bc55d1bb 356 * void fingersnap() {
davidwst421 16:a5f5bc55d1bb 357 * lcd.clear(); // at this point the game has broken the while loop, clear screen to display congrat message
davidwst421 16:a5f5bc55d1bb 358 * lcd.printString("Congrat!!",15,0);
davidwst421 16:a5f5bc55d1bb 359 * lcd.printString("Credit: STWong",0,1);
davidwst421 16:a5f5bc55d1bb 360 * lcd.printString("201186503",15,2);
davidwst421 16:a5f5bc55d1bb 361 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 362 *
davidwst421 16:a5f5bc55d1bb 363 * pad.tone(440.00,0.21); // avenger theme again
davidwst421 16:a5f5bc55d1bb 364 * wait(0.21);
davidwst421 16:a5f5bc55d1bb 365 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 366 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 367 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 368 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 369 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 370 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 371 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 372 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 373 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 374 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 375 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 376 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 377 * pad.tone(587.3,0.42);
davidwst421 16:a5f5bc55d1bb 378 * wait(0.42);
davidwst421 16:a5f5bc55d1bb 379 * pad.tone(880.0,0.21);
davidwst421 16:a5f5bc55d1bb 380 * wait(0.21);
davidwst421 16:a5f5bc55d1bb 381 * pad.tone(784.0,1.40);
davidwst421 16:a5f5bc55d1bb 382 * wait(1.40);
davidwst421 16:a5f5bc55d1bb 383 * pad.tone(698.5,0.70);
davidwst421 16:a5f5bc55d1bb 384 * wait(0.70);
davidwst421 16:a5f5bc55d1bb 385 * pad.tone(659.3,0.70);
davidwst421 16:a5f5bc55d1bb 386 * wait(0.70);
davidwst421 16:a5f5bc55d1bb 387 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 388 * wait(0.70);
davidwst421 16:a5f5bc55d1bb 389 * while (pad.check_event(Gamepad::START_PRESSED) == false) { // enter loop waiting to restart the game
davidwst421 16:a5f5bc55d1bb 390 * lcd.printString("press start",9,4);
davidwst421 16:a5f5bc55d1bb 391 * lcd.printString("to return",15,5);
davidwst421 16:a5f5bc55d1bb 392 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 393 * pad.leds_on();
davidwst421 16:a5f5bc55d1bb 394 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 395 * pad.leds_off();
davidwst421 16:a5f5bc55d1bb 396 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 397 * }
davidwst421 16:a5f5bc55d1bb 398 * }
davidwst421 16:a5f5bc55d1bb 399 *
davidwst421 16:a5f5bc55d1bb 400 * void endgame() {
davidwst421 16:a5f5bc55d1bb 401 * lcd.clear(); //break the while loop and enter gameover
davidwst421 16:a5f5bc55d1bb 402 * lcd.printString("Mr.Stark",18,1);
davidwst421 16:a5f5bc55d1bb 403 * lcd.printString("I don't feel",6,2);
davidwst421 16:a5f5bc55d1bb 404 * lcd.printString("so good ...",9,3);
davidwst421 16:a5f5bc55d1bb 405 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 406 *
davidwst421 16:a5f5bc55d1bb 407 * pad.tone(587.3,0.63); // play sad music when lose
davidwst421 16:a5f5bc55d1bb 408 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 409 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 410 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 411 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 412 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 413 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 414 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 415 * pad.tone(587.3,0.63);
davidwst421 16:a5f5bc55d1bb 416 * wait(0.63);
davidwst421 16:a5f5bc55d1bb 417 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 418 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 419 * pad.tone(698.5,0.42);
davidwst421 16:a5f5bc55d1bb 420 * wait(0.42);
davidwst421 16:a5f5bc55d1bb 421 * pad.tone(659.3,0.21);
davidwst421 16:a5f5bc55d1bb 422 * wait(0.21);
davidwst421 16:a5f5bc55d1bb 423 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 424 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 425 * pad.tone(659.3,0.42);
davidwst421 16:a5f5bc55d1bb 426 * wait(0.42);
davidwst421 16:a5f5bc55d1bb 427 * pad.tone(587.3,0.21);
davidwst421 16:a5f5bc55d1bb 428 * wait(0.21);
davidwst421 16:a5f5bc55d1bb 429 * pad.tone(0.0,0.06);
davidwst421 16:a5f5bc55d1bb 430 * wait(0.06);
davidwst421 16:a5f5bc55d1bb 431 * pad.tone(587.3,0.42);
davidwst421 16:a5f5bc55d1bb 432 * wait(0.42);
davidwst421 16:a5f5bc55d1bb 433 * pad.tone(554.4,0.21);
davidwst421 16:a5f5bc55d1bb 434 * wait(0.21);
davidwst421 16:a5f5bc55d1bb 435 * pad.tone(587.3,0.42);
davidwst421 16:a5f5bc55d1bb 436 * wait(0.42);
davidwst421 16:a5f5bc55d1bb 437 * while (pad.check_event(Gamepad::START_PRESSED) == false) { // enter loop waiting to restart the game
davidwst421 16:a5f5bc55d1bb 438 * lcd.printString("press start",9,4);
davidwst421 16:a5f5bc55d1bb 439 * lcd.printString("to return",15,5);
davidwst421 16:a5f5bc55d1bb 440 * lcd.refresh();
davidwst421 16:a5f5bc55d1bb 441 * wait(0.5);
davidwst421 16:a5f5bc55d1bb 442 * }
davidwst421 16:a5f5bc55d1bb 443 * }
davidwst421 16:a5f5bc55d1bb 444 *
davidwst421 16:a5f5bc55d1bb 445 * @endcode
davidwst421 16:a5f5bc55d1bb 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