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.
main.cpp@0:340fb82a9149, 2019-05-06 (annotated)
- Committer:
- mztkb
- Date:
- Mon May 06 10:17:43 2019 +0000
- Revision:
- 0:340fb82a9149
code changed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mztkb | 0:340fb82a9149 | 1 | ///////// pre-processor directives //////// |
mztkb | 0:340fb82a9149 | 2 | #include "mbed.h" |
mztkb | 0:340fb82a9149 | 3 | #include "Gamepad.h" |
mztkb | 0:340fb82a9149 | 4 | #include "N5110.h" |
mztkb | 0:340fb82a9149 | 5 | //#include "PongEngine.h" |
mztkb | 0:340fb82a9149 | 6 | |
mztkb | 0:340fb82a9149 | 7 | #ifdef WITH_TESTING |
mztkb | 0:340fb82a9149 | 8 | # include "tests.h" |
mztkb | 0:340fb82a9149 | 9 | #endif |
mztkb | 0:340fb82a9149 | 10 | |
mztkb | 0:340fb82a9149 | 11 | #define PADDLE_WIDTH 2 |
mztkb | 0:340fb82a9149 | 12 | #define PADDLE_HEIGHT 8 |
mztkb | 0:340fb82a9149 | 13 | //#define BALL_SIZE 2 |
mztkb | 0:340fb82a9149 | 14 | //#define BALLspeed 3 |
mztkb | 0:340fb82a9149 | 15 | |
mztkb | 0:340fb82a9149 | 16 | /////////////// structs ///////////////// |
mztkb | 0:340fb82a9149 | 17 | //struct UserInput { |
mztkb | 0:340fb82a9149 | 18 | // Direction d; |
mztkb | 0:340fb82a9149 | 19 | // float mag; |
mztkb | 0:340fb82a9149 | 20 | //}; |
mztkb | 0:340fb82a9149 | 21 | /////////////// objects /////////////// |
mztkb | 0:340fb82a9149 | 22 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
mztkb | 0:340fb82a9149 | 23 | Gamepad pad; |
mztkb | 0:340fb82a9149 | 24 | //PongEngine pong; |
mztkb | 0:340fb82a9149 | 25 | |
mztkb | 0:340fb82a9149 | 26 | ///////////// prototypes /////////////// |
mztkb | 0:340fb82a9149 | 27 | void init(); |
mztkb | 0:340fb82a9149 | 28 | //void update_game(UserInput input); |
mztkb | 0:340fb82a9149 | 29 | void render(); |
mztkb | 0:340fb82a9149 | 30 | void welcome(); |
mztkb | 0:340fb82a9149 | 31 | void update(Direction d, float mag); |
mztkb | 0:340fb82a9149 | 32 | //uint8_t |
mztkb | 0:340fb82a9149 | 33 | int y = 16; |
mztkb | 0:340fb82a9149 | 34 | int speed = 0 ; |
mztkb | 0:340fb82a9149 | 35 | uint8_t save[50]={0}; |
mztkb | 0:340fb82a9149 | 36 | int background[50][84]={ |
mztkb | 0:340fb82a9149 | 37 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 38 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 39 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 40 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 41 | {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 42 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, |
mztkb | 0:340fb82a9149 | 43 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, |
mztkb | 0:340fb82a9149 | 44 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 45 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 46 | {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 47 | {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 48 | {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 49 | {0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 50 | {0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 51 | {0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 52 | {0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 53 | {0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 54 | {0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
mztkb | 0:340fb82a9149 | 55 | {0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 56 | {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,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,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}, |
mztkb | 0:340fb82a9149 | 57 | {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,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,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}, |
mztkb | 0:340fb82a9149 | 58 | {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,1,1,1,1,1,1,1,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}, |
mztkb | 0:340fb82a9149 | 59 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,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}, |
mztkb | 0:340fb82a9149 | 60 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,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}, |
mztkb | 0:340fb82a9149 | 61 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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}, |
mztkb | 0:340fb82a9149 | 62 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 63 | {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 64 | {0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 65 | {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,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 66 | {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,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,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 67 | {0,0,0,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,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,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 68 | {0,0,0,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,1,1,1,1,1,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,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}, |
mztkb | 0:340fb82a9149 | 69 | {0,0,0,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,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 70 | {0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0}, |
mztkb | 0:340fb82a9149 | 71 | {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,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,1,1,1,1,1,1,1,0}, |
mztkb | 0:340fb82a9149 | 72 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 73 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 74 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 75 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 76 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 77 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 78 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 79 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 80 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 81 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 82 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 83 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 84 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 85 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 86 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
mztkb | 0:340fb82a9149 | 87 | }; |
mztkb | 0:340fb82a9149 | 88 | |
mztkb | 0:340fb82a9149 | 89 | int Battlecuriser[5][8]={ |
mztkb | 0:340fb82a9149 | 90 | {1,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 91 | {1,1,1,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 92 | {1,1,1,1,1,0,0,0}, |
mztkb | 0:340fb82a9149 | 93 | {1,1,1,1,1,1,1,0}, |
mztkb | 0:340fb82a9149 | 94 | {0,0,0,0,0,0,0,0}, |
mztkb | 0:340fb82a9149 | 95 | |
mztkb | 0:340fb82a9149 | 96 | }; |
mztkb | 0:340fb82a9149 | 97 | |
mztkb | 0:340fb82a9149 | 98 | |
mztkb | 0:340fb82a9149 | 99 | |
mztkb | 0:340fb82a9149 | 100 | ///////////// functions //////////////// |
mztkb | 0:340fb82a9149 | 101 | int main() |
mztkb | 0:340fb82a9149 | 102 | { |
mztkb | 0:340fb82a9149 | 103 | #ifdef WITH_TESTING |
mztkb | 0:340fb82a9149 | 104 | int number_of_failures = run_all_tests(); |
mztkb | 0:340fb82a9149 | 105 | |
mztkb | 0:340fb82a9149 | 106 | if(number_of_failures > 0) return number_of_failures; |
mztkb | 0:340fb82a9149 | 107 | #endif |
mztkb | 0:340fb82a9149 | 108 | |
mztkb | 0:340fb82a9149 | 109 | |
mztkb | 0:340fb82a9149 | 110 | int a = 0; |
mztkb | 0:340fb82a9149 | 111 | int count = 0; |
mztkb | 0:340fb82a9149 | 112 | |
mztkb | 0:340fb82a9149 | 113 | init(); // initialise and then display welcome screen... |
mztkb | 0:340fb82a9149 | 114 | welcome(); // waiting for the user to start |
mztkb | 0:340fb82a9149 | 115 | lcd.clear(); |
mztkb | 0:340fb82a9149 | 116 | lcd.drawSprite(0,0,50,84,(int*)background); |
mztkb | 0:340fb82a9149 | 117 | lcd.drawSprite(0,25,5,8,(int*)Battlecuriser); |
mztkb | 0:340fb82a9149 | 118 | lcd.refresh(); |
mztkb | 0:340fb82a9149 | 119 | //render(); // first draw the initial frame |
mztkb | 0:340fb82a9149 | 120 | wait(0.5); // and wait |
mztkb | 0:340fb82a9149 | 121 | |
mztkb | 0:340fb82a9149 | 122 | |
mztkb | 0:340fb82a9149 | 123 | // game loop - read input, update the game state and render the display |
mztkb | 0:340fb82a9149 | 124 | while (1) |
mztkb | 0:340fb82a9149 | 125 | { |
mztkb | 0:340fb82a9149 | 126 | //pong.read_input(pad); |
mztkb | 0:340fb82a9149 | 127 | //pong.update(pad); |
mztkb | 0:340fb82a9149 | 128 | Direction d = pad.get_direction(); |
mztkb | 0:340fb82a9149 | 129 | float mag = pad.get_mag(); |
mztkb | 0:340fb82a9149 | 130 | update(d,mag); |
mztkb | 0:340fb82a9149 | 131 | lcd.clear(); |
mztkb | 0:340fb82a9149 | 132 | lcd.drawSprite(0,0,50,84,(int*)background); |
mztkb | 0:340fb82a9149 | 133 | lcd.drawSprite(0,y,5,8,(int*)Battlecuriser); |
mztkb | 0:340fb82a9149 | 134 | lcd.refresh(); |
mztkb | 0:340fb82a9149 | 135 | //render(); |
mztkb | 0:340fb82a9149 | 136 | // Get the final column |
mztkb | 0:340fb82a9149 | 137 | for (a = 0; a < 50; a++) |
mztkb | 0:340fb82a9149 | 138 | { |
mztkb | 0:340fb82a9149 | 139 | save[a] = background[a][0]; |
mztkb | 0:340fb82a9149 | 140 | } |
mztkb | 0:340fb82a9149 | 141 | // Move the background image one column to the left. |
mztkb | 0:340fb82a9149 | 142 | for (a = 0; a < 50; a++) |
mztkb | 0:340fb82a9149 | 143 | { |
mztkb | 0:340fb82a9149 | 144 | for (count = 0; count < 84; count++) |
mztkb | 0:340fb82a9149 | 145 | { |
mztkb | 0:340fb82a9149 | 146 | background[a][count] = background[a][count + 1]; |
mztkb | 0:340fb82a9149 | 147 | } |
mztkb | 0:340fb82a9149 | 148 | } |
mztkb | 0:340fb82a9149 | 149 | // Set the final column |
mztkb | 0:340fb82a9149 | 150 | for (a = 0; a < 50; a++) |
mztkb | 0:340fb82a9149 | 151 | { |
mztkb | 0:340fb82a9149 | 152 | background[a][83] = save[a]; |
mztkb | 0:340fb82a9149 | 153 | } |
mztkb | 0:340fb82a9149 | 154 | if(background[0][y]==1) |
mztkb | 0:340fb82a9149 | 155 | { |
mztkb | 0:340fb82a9149 | 156 | pad.tone(750.0,0.1); |
mztkb | 0:340fb82a9149 | 157 | break; |
mztkb | 0:340fb82a9149 | 158 | } |
mztkb | 0:340fb82a9149 | 159 | wait(0.5); |
mztkb | 0:340fb82a9149 | 160 | } |
mztkb | 0:340fb82a9149 | 161 | for(a = 0; a < 3; a++) |
mztkb | 0:340fb82a9149 | 162 | { |
mztkb | 0:340fb82a9149 | 163 | for(int b = 0; b < 50; b++) |
mztkb | 0:340fb82a9149 | 164 | { |
mztkb | 0:340fb82a9149 | 165 | for(count = 0; count < 84; count++) |
mztkb | 0:340fb82a9149 | 166 | { |
mztkb | 0:340fb82a9149 | 167 | if(background[b][count]== 1) { |
mztkb | 0:340fb82a9149 | 168 | background[b][count] = 0; |
mztkb | 0:340fb82a9149 | 169 | } else if(background[b][count]== 0) { |
mztkb | 0:340fb82a9149 | 170 | background[b][count] = 1; |
mztkb | 0:340fb82a9149 | 171 | } |
mztkb | 0:340fb82a9149 | 172 | |
mztkb | 0:340fb82a9149 | 173 | } |
mztkb | 0:340fb82a9149 | 174 | } |
mztkb | 0:340fb82a9149 | 175 | lcd.drawSprite(0,0,50,84,(int*)background); |
mztkb | 0:340fb82a9149 | 176 | lcd.refresh(); |
mztkb | 0:340fb82a9149 | 177 | |
mztkb | 0:340fb82a9149 | 178 | wait(0.5); |
mztkb | 0:340fb82a9149 | 179 | } |
mztkb | 0:340fb82a9149 | 180 | } |
mztkb | 0:340fb82a9149 | 181 | |
mztkb | 0:340fb82a9149 | 182 | // initialies all classes and libraries |
mztkb | 0:340fb82a9149 | 183 | void init() |
mztkb | 0:340fb82a9149 | 184 | { |
mztkb | 0:340fb82a9149 | 185 | // need to initialise LCD and Gamepad |
mztkb | 0:340fb82a9149 | 186 | lcd.init(); |
mztkb | 0:340fb82a9149 | 187 | pad.init(); |
mztkb | 0:340fb82a9149 | 188 | |
mztkb | 0:340fb82a9149 | 189 | // initialise the game with correct ball and paddle sizes |
mztkb | 0:340fb82a9149 | 190 | //pong.init(PADDLE_WIDTH,PADDLE_HEIGHT,BALL_SIZE,BALLspeed); |
mztkb | 0:340fb82a9149 | 191 | |
mztkb | 0:340fb82a9149 | 192 | } |
mztkb | 0:340fb82a9149 | 193 | |
mztkb | 0:340fb82a9149 | 194 | // this function draws each frame on the LCD |
mztkb | 0:340fb82a9149 | 195 | void render() |
mztkb | 0:340fb82a9149 | 196 | { |
mztkb | 0:340fb82a9149 | 197 | // clear screen, re-draw and refresh |
mztkb | 0:340fb82a9149 | 198 | lcd.clear(); |
mztkb | 0:340fb82a9149 | 199 | //pong.draw(lcd); |
mztkb | 0:340fb82a9149 | 200 | lcd.refresh(); |
mztkb | 0:340fb82a9149 | 201 | } |
mztkb | 0:340fb82a9149 | 202 | |
mztkb | 0:340fb82a9149 | 203 | // simple splash screen displayed on start-up |
mztkb | 0:340fb82a9149 | 204 | void welcome() { |
mztkb | 0:340fb82a9149 | 205 | |
mztkb | 0:340fb82a9149 | 206 | lcd.printString(" Battle! ",0,1); |
mztkb | 0:340fb82a9149 | 207 | lcd.printString(" Start ",0,4); |
mztkb | 0:340fb82a9149 | 208 | lcd.refresh(); |
mztkb | 0:340fb82a9149 | 209 | |
mztkb | 0:340fb82a9149 | 210 | // wait flashing LEDs until start button is pressed |
mztkb | 0:340fb82a9149 | 211 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { |
mztkb | 0:340fb82a9149 | 212 | pad.leds_on(); |
mztkb | 0:340fb82a9149 | 213 | wait(0.1); |
mztkb | 0:340fb82a9149 | 214 | pad.leds_off(); |
mztkb | 0:340fb82a9149 | 215 | wait(0.1); |
mztkb | 0:340fb82a9149 | 216 | } |
mztkb | 0:340fb82a9149 | 217 | |
mztkb | 0:340fb82a9149 | 218 | } |
mztkb | 0:340fb82a9149 | 219 | |
mztkb | 0:340fb82a9149 | 220 | void update(Direction d,float mag) |
mztkb | 0:340fb82a9149 | 221 | { |
mztkb | 0:340fb82a9149 | 222 | speed = int(mag*10.0f); // scale is arbitrary, could be changed in future |
mztkb | 0:340fb82a9149 | 223 | |
mztkb | 0:340fb82a9149 | 224 | // update y value depending on direction of movement |
mztkb | 0:340fb82a9149 | 225 | // North is decrement as origin is at the top-left so decreasing moves up |
mztkb | 0:340fb82a9149 | 226 | if (d == N) |
mztkb | 0:340fb82a9149 | 227 | { |
mztkb | 0:340fb82a9149 | 228 | y-=speed; |
mztkb | 0:340fb82a9149 | 229 | } |
mztkb | 0:340fb82a9149 | 230 | else if (d == S) |
mztkb | 0:340fb82a9149 | 231 | { |
mztkb | 0:340fb82a9149 | 232 | y+=speed; |
mztkb | 0:340fb82a9149 | 233 | } |
mztkb | 0:340fb82a9149 | 234 | // check the y origin to ensure that the paddle doesn't go off screen |
mztkb | 0:340fb82a9149 | 235 | // if (y < 1) |
mztkb | 0:340fb82a9149 | 236 | // { |
mztkb | 0:340fb82a9149 | 237 | // y = 1; |
mztkb | 0:340fb82a9149 | 238 | // } |
mztkb | 0:340fb82a9149 | 239 | |
mztkb | 0:340fb82a9149 | 240 | } |