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

Dependencies:   mbed

Committer:
davidwst421
Date:
Thu May 09 01:27:58 2019 +0000
Revision:
7:193c0fd7afdd
Parent:
6:a0f3dbbc8d33
Child:
8:97576c8761a8
improve collision factor and add tutorial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidwst421 0:fd8eda608206 1 /*
davidwst421 0:fd8eda608206 2 ELEC2645 Embedded Systems Project
davidwst421 0:fd8eda608206 3 School of Electronic & Electrical Engineering
davidwst421 0:fd8eda608206 4 University of Leeds
davidwst421 0:fd8eda608206 5 Name: Siuting Wong
davidwst421 0:fd8eda608206 6 Username: Siuting Wong
davidwst421 0:fd8eda608206 7 Student ID Number: 201186503
davidwst421 0:fd8eda608206 8 Date: 06/05/2019
davidwst421 0:fd8eda608206 9 */
davidwst421 0:fd8eda608206 10 ///////// pre-processor directives ////////
davidwst421 0:fd8eda608206 11 #include "mbed.h"
davidwst421 0:fd8eda608206 12 #include "Gamepad.h"
davidwst421 0:fd8eda608206 13 #include "N5110.h"
davidwst421 0:fd8eda608206 14 #include "Engine.h"
davidwst421 0:fd8eda608206 15
davidwst421 0:fd8eda608206 16 #define WALL_WIDTH 2
davidwst421 4:fcd80b40f257 17 #define WALL_GAP 10
davidwst421 0:fd8eda608206 18 #define AVENGER_SIZE 2
davidwst421 6:a0f3dbbc8d33 19 #define STONE_SIZE 2
davidwst421 2:00a3edbe39b0 20 #define SPEED 2
davidwst421 0:fd8eda608206 21
davidwst421 0:fd8eda608206 22 /////////////// structs /////////////////
davidwst421 0:fd8eda608206 23 struct UserInput {
davidwst421 0:fd8eda608206 24 Direction d;
davidwst421 0:fd8eda608206 25 float mag;
davidwst421 6:a0f3dbbc8d33 26 Vector2D mapped_coord;
davidwst421 0:fd8eda608206 27 };
davidwst421 0:fd8eda608206 28 /////////////// objects ///////////////
davidwst421 0:fd8eda608206 29 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
davidwst421 0:fd8eda608206 30 Gamepad pad;
davidwst421 0:fd8eda608206 31 Engine eng;
davidwst421 0:fd8eda608206 32
davidwst421 0:fd8eda608206 33 ///////////// prototypes ///////////////
davidwst421 0:fd8eda608206 34 void init();
davidwst421 0:fd8eda608206 35 void update_game(UserInput input);
davidwst421 0:fd8eda608206 36 void render();
davidwst421 0:fd8eda608206 37 void welcome();
davidwst421 4:fcd80b40f257 38 void endgame();
davidwst421 7:193c0fd7afdd 39 void introduction();
davidwst421 0:fd8eda608206 40
davidwst421 7:193c0fd7afdd 41 const int Avenger0[25][32] = {
davidwst421 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 67 };
davidwst421 7:193c0fd7afdd 68
davidwst421 7:193c0fd7afdd 69 const int Avenger1[25][32] = {
davidwst421 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 95 };
davidwst421 7:193c0fd7afdd 96
davidwst421 7:193c0fd7afdd 97 const int intro0[8][84] = {
davidwst421 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 106 };
davidwst421 7:193c0fd7afdd 107 const int intro1[8][84] = {
davidwst421 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 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 7:193c0fd7afdd 116 };
davidwst421 7:193c0fd7afdd 117 const int intro2[8][84] = {
davidwst421 7:193c0fd7afdd 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 7:193c0fd7afdd 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,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,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 7:193c0fd7afdd 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,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,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 7:193c0fd7afdd 121 { 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,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 7:193c0fd7afdd 122 { 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,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 7:193c0fd7afdd 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,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,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 7:193c0fd7afdd 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,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,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 7:193c0fd7afdd 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 7:193c0fd7afdd 126 };
davidwst421 0:fd8eda608206 127 ///////////// functions ////////////////
davidwst421 0:fd8eda608206 128 int main() {
davidwst421 6:a0f3dbbc8d33 129 int fps = 8;
davidwst421 0:fd8eda608206 130
davidwst421 0:fd8eda608206 131 init(); // initialise and then display welcome screen...
davidwst421 0:fd8eda608206 132 welcome();
davidwst421 7:193c0fd7afdd 133 introduction();
davidwst421 0:fd8eda608206 134 render();
davidwst421 0:fd8eda608206 135 wait(1.0f/fps); // and wait for one frame period
davidwst421 0:fd8eda608206 136
davidwst421 6:a0f3dbbc8d33 137 while (eng.get_score() >= 0) {
davidwst421 0:fd8eda608206 138 eng.read_input(pad);
davidwst421 0:fd8eda608206 139 eng.update(pad);
davidwst421 0:fd8eda608206 140 render();
davidwst421 0:fd8eda608206 141 wait(1.0f/fps);
davidwst421 0:fd8eda608206 142 }
davidwst421 2:00a3edbe39b0 143 endgame();
davidwst421 0:fd8eda608206 144 }
davidwst421 0:fd8eda608206 145
davidwst421 0:fd8eda608206 146 void init() {
davidwst421 0:fd8eda608206 147
davidwst421 0:fd8eda608206 148 // need to initialise LCD and Gamepad
davidwst421 0:fd8eda608206 149 lcd.init();
davidwst421 0:fd8eda608206 150 pad.init();
davidwst421 0:fd8eda608206 151
davidwst421 0:fd8eda608206 152 // initialise the game with correct ball and paddle sizes
davidwst421 7:193c0fd7afdd 153 eng.init(WALL_WIDTH,WALL_GAP,STONE_SIZE,SPEED);
davidwst421 0:fd8eda608206 154 }
davidwst421 0:fd8eda608206 155
davidwst421 0:fd8eda608206 156 void welcome() {
davidwst421 0:fd8eda608206 157
davidwst421 7:193c0fd7afdd 158 while (pad.check_event(Gamepad::START_PRESSED) == true) {
davidwst421 0:fd8eda608206 159 lcd.clear();
davidwst421 6:a0f3dbbc8d33 160 lcd.printString("Eternity Stone",0,0);
davidwst421 7:193c0fd7afdd 161 lcd.printString("Start: game",6,4);
davidwst421 7:193c0fd7afdd 162 lcd.printString("Back: story",6,5);
davidwst421 6:a0f3dbbc8d33 163 lcd.drawSprite(25,8,25,32,(int *)Avenger0);
davidwst421 0:fd8eda608206 164 lcd.refresh();
davidwst421 6:a0f3dbbc8d33 165 wait(0.5);
davidwst421 6:a0f3dbbc8d33 166 lcd.clear();
davidwst421 6:a0f3dbbc8d33 167 lcd.printString("Eternity Stone",0,0);
davidwst421 7:193c0fd7afdd 168 lcd.printString("Start: game",6,4);
davidwst421 7:193c0fd7afdd 169 lcd.printString("Back: story",6,5);
davidwst421 6:a0f3dbbc8d33 170 lcd.drawSprite(25,8,25,32,(int *)Avenger1);
davidwst421 6:a0f3dbbc8d33 171 lcd.refresh();
davidwst421 6:a0f3dbbc8d33 172 wait(0.5);
davidwst421 0:fd8eda608206 173 }
davidwst421 0:fd8eda608206 174 }
davidwst421 0:fd8eda608206 175
davidwst421 7:193c0fd7afdd 176 void introduction() {
davidwst421 7:193c0fd7afdd 177 lcd.clear();
davidwst421 7:193c0fd7afdd 178 lcd.printString("Five year ",12,0);
davidwst421 7:193c0fd7afdd 179 lcd.refresh();
davidwst421 7:193c0fd7afdd 180 wait(1.0);
davidwst421 7:193c0fd7afdd 181 lcd.printString("Since Thanos",6,2);
davidwst421 7:193c0fd7afdd 182 lcd.printString("destroyed half",6,3);
davidwst421 7:193c0fd7afdd 183 lcd.printString("of all life",9,4);
davidwst421 7:193c0fd7afdd 184 lcd.printString("on Earth",18,5);
davidwst421 7:193c0fd7afdd 185 lcd.refresh();
davidwst421 7:193c0fd7afdd 186 wait(3.0);
davidwst421 7:193c0fd7afdd 187 lcd.printString("(Press start)",6,1);
davidwst421 7:193c0fd7afdd 188 wait(1.0);
davidwst421 7:193c0fd7afdd 189 while (pad.check_event(Gamepad::START_PRESSED) == false) {
davidwst421 7:193c0fd7afdd 190 lcd.refresh();
davidwst421 7:193c0fd7afdd 191 wait(0.5);
davidwst421 7:193c0fd7afdd 192 }
davidwst421 7:193c0fd7afdd 193 lcd.clear();
davidwst421 7:193c0fd7afdd 194 lcd.printString("You are a",12,0);
davidwst421 7:193c0fd7afdd 195 lcd.printString("member of",15,1);
davidwst421 7:193c0fd7afdd 196 lcd.printString("Avengers and",6,2);
davidwst421 7:193c0fd7afdd 197 lcd.printString("you need to",9,3);
davidwst421 7:193c0fd7afdd 198 lcd.printString("time travel in",0,4);
davidwst421 7:193c0fd7afdd 199 lcd.printString("Quantum realm",3,5);
davidwst421 7:193c0fd7afdd 200 lcd.refresh();
davidwst421 7:193c0fd7afdd 201 wait(3.0);
davidwst421 7:193c0fd7afdd 202 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
davidwst421 7:193c0fd7afdd 203 lcd.refresh();
davidwst421 7:193c0fd7afdd 204 wait(0.5);
davidwst421 7:193c0fd7afdd 205 }
davidwst421 7:193c0fd7afdd 206 while (pad.check_event(Gamepad::START_PRESSED) == false) {
davidwst421 7:193c0fd7afdd 207 lcd.clear();
davidwst421 7:193c0fd7afdd 208 lcd.printString("Use your",12,0);
davidwst421 7:193c0fd7afdd 209 lcd.printString("joystick to",15,1);
davidwst421 7:193c0fd7afdd 210 lcd.printString("send yourself",3,2);
davidwst421 7:193c0fd7afdd 211 lcd.printString("to the right",6,3);
davidwst421 7:193c0fd7afdd 212 lcd.printString("Wormhole",6,4);
davidwst421 7:193c0fd7afdd 213 lcd.drawSprite(0,40,8,84,(int *)intro0);
davidwst421 7:193c0fd7afdd 214 lcd.refresh();
davidwst421 7:193c0fd7afdd 215 wait(0.5);
davidwst421 7:193c0fd7afdd 216 lcd.clear();
davidwst421 7:193c0fd7afdd 217 lcd.printString("Use your",12,0);
davidwst421 7:193c0fd7afdd 218 lcd.printString("joystick to",15,1);
davidwst421 7:193c0fd7afdd 219 lcd.printString("send yourself",3,2);
davidwst421 7:193c0fd7afdd 220 lcd.printString("to the right",6,3);
davidwst421 7:193c0fd7afdd 221 lcd.printString("Wormhole",6,4);
davidwst421 7:193c0fd7afdd 222 lcd.drawSprite(0,40,8,84,(int *)intro1);
davidwst421 7:193c0fd7afdd 223 lcd.refresh();
davidwst421 7:193c0fd7afdd 224 wait(0.5);
davidwst421 7:193c0fd7afdd 225 lcd.clear();
davidwst421 7:193c0fd7afdd 226 lcd.printString("Use your",12,0);
davidwst421 7:193c0fd7afdd 227 lcd.printString("joystick to",15,1);
davidwst421 7:193c0fd7afdd 228 lcd.printString("send yourself",3,2);
davidwst421 7:193c0fd7afdd 229 lcd.printString("to the right",6,3);
davidwst421 7:193c0fd7afdd 230 lcd.printString("Wormhole",6,4);
davidwst421 7:193c0fd7afdd 231 lcd.drawSprite(0,40,8,84,(int *)intro2);
davidwst421 7:193c0fd7afdd 232 lcd.refresh();
davidwst421 7:193c0fd7afdd 233 wait(0.5);
davidwst421 7:193c0fd7afdd 234 }
davidwst421 7:193c0fd7afdd 235
davidwst421 7:193c0fd7afdd 236
davidwst421 7:193c0fd7afdd 237 }
davidwst421 7:193c0fd7afdd 238
davidwst421 0:fd8eda608206 239 void render() {
davidwst421 0:fd8eda608206 240
davidwst421 0:fd8eda608206 241 // clear screen, re-draw and refresh
davidwst421 0:fd8eda608206 242 lcd.clear();
davidwst421 0:fd8eda608206 243 eng.draw(lcd);
davidwst421 0:fd8eda608206 244 lcd.refresh();
davidwst421 2:00a3edbe39b0 245 }
davidwst421 2:00a3edbe39b0 246
davidwst421 2:00a3edbe39b0 247 void endgame() {
davidwst421 3:53f0365461c0 248 lcd.clear();
davidwst421 3:53f0365461c0 249 lcd.printString("Endgame",12,1);
davidwst421 2:00a3edbe39b0 250 lcd.refresh();
davidwst421 6:a0f3dbbc8d33 251 pad.tone(587.3,0.63);
davidwst421 6:a0f3dbbc8d33 252 wait(0.63);
davidwst421 6:a0f3dbbc8d33 253 pad.tone(0.0,0.06);
davidwst421 6:a0f3dbbc8d33 254 wait(0.06);
davidwst421 6:a0f3dbbc8d33 255 pad.tone(587.3,0.63);
davidwst421 6:a0f3dbbc8d33 256 wait(0.63);
davidwst421 6:a0f3dbbc8d33 257 pad.tone(0.0,0.06);
davidwst421 6:a0f3dbbc8d33 258 wait(0.06);
davidwst421 6:a0f3dbbc8d33 259 pad.tone(587.3,0.63);
davidwst421 6:a0f3dbbc8d33 260 wait(0.63);
davidwst421 6:a0f3dbbc8d33 261 pad.tone(0.0,0.06);
davidwst421 6:a0f3dbbc8d33 262 wait(0.06);
davidwst421 6:a0f3dbbc8d33 263 pad.tone(698.5,0.42);
davidwst421 6:a0f3dbbc8d33 264 wait(0.42);
davidwst421 6:a0f3dbbc8d33 265 pad.tone(659.3,0.21);
davidwst421 6:a0f3dbbc8d33 266 wait(0.21);
davidwst421 6:a0f3dbbc8d33 267 pad.tone(0.0,0.06);
davidwst421 6:a0f3dbbc8d33 268 wait(0.06);
davidwst421 6:a0f3dbbc8d33 269 pad.tone(659.3,0.42);
davidwst421 6:a0f3dbbc8d33 270 wait(0.42);
davidwst421 6:a0f3dbbc8d33 271 pad.tone(587.3,0.21);
davidwst421 6:a0f3dbbc8d33 272 wait(0.21);
davidwst421 6:a0f3dbbc8d33 273 pad.tone(0.0,0.06);
davidwst421 6:a0f3dbbc8d33 274 wait(0.06);
davidwst421 6:a0f3dbbc8d33 275 pad.tone(587.3,0.42);
davidwst421 6:a0f3dbbc8d33 276 wait(0.42);
davidwst421 6:a0f3dbbc8d33 277 pad.tone(554.4,0.21);
davidwst421 6:a0f3dbbc8d33 278 wait(0.21);
davidwst421 6:a0f3dbbc8d33 279 pad.tone(587.3,0.42);
davidwst421 6:a0f3dbbc8d33 280 wait(0.42);
davidwst421 7:193c0fd7afdd 281 }