Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@7:193c0fd7afdd, 2019-05-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |