Game codes for Pokemon Academy Yiu Fai Kwok - 201198802 I have read the University Regulations on Plagiarism and state that the work covered by this declaration is my own and does not contain any unacknowledged work from other sources.
Dependencies: mbed FXOS8700CQ mbed-rtos
main.cpp@1:61b67654ffb7, 2019-03-22 (annotated)
- Committer:
- yfkwok
- Date:
- Fri Mar 22 10:40:52 2019 +0000
- Revision:
- 1:61b67654ffb7
- Parent:
- 0:1da4db5de653
- Child:
- 2:464c7e62d97d
Title page designed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yfkwok | 0:1da4db5de653 | 1 | /* |
yfkwok | 0:1da4db5de653 | 2 | ELEC2645 Embedded Systems Project |
yfkwok | 0:1da4db5de653 | 3 | School of Electronic & Electrical Engineering |
yfkwok | 0:1da4db5de653 | 4 | University of Leeds |
yfkwok | 0:1da4db5de653 | 5 | Name: Yiu Fai Kwok |
yfkwok | 0:1da4db5de653 | 6 | Username: el17yfk |
yfkwok | 0:1da4db5de653 | 7 | Student ID Number: 201198802 |
yfkwok | 0:1da4db5de653 | 8 | Date: 11/03/2019 |
yfkwok | 0:1da4db5de653 | 9 | */ |
yfkwok | 0:1da4db5de653 | 10 | |
yfkwok | 1:61b67654ffb7 | 11 | #include "mbed.h" |
yfkwok | 1:61b67654ffb7 | 12 | #include "N5110.h" |
yfkwok | 1:61b67654ffb7 | 13 | #include "Gamepad.h" |
yfkwok | 1:61b67654ffb7 | 14 | |
yfkwok | 1:61b67654ffb7 | 15 | /////////////// objects /////////////// |
yfkwok | 1:61b67654ffb7 | 16 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3 |
yfkwok | 1:61b67654ffb7 | 17 | Gamepad pad; |
yfkwok | 1:61b67654ffb7 | 18 | |
yfkwok | 1:61b67654ffb7 | 19 | ///////////// prototypes /////////////// |
yfkwok | 1:61b67654ffb7 | 20 | void init(); |
yfkwok | 1:61b67654ffb7 | 21 | void welcome(); |
yfkwok | 1:61b67654ffb7 | 22 | |
yfkwok | 1:61b67654ffb7 | 23 | ///////////// functions //////////////// |
yfkwok | 1:61b67654ffb7 | 24 | int main(){ |
yfkwok | 1:61b67654ffb7 | 25 | |
yfkwok | 1:61b67654ffb7 | 26 | int fps = 8; // frames per second |
yfkwok | 1:61b67654ffb7 | 27 | |
yfkwok | 1:61b67654ffb7 | 28 | init(); // initialise and then display welcome screen... |
yfkwok | 1:61b67654ffb7 | 29 | welcome(); // waiting for the user to start |
yfkwok | 1:61b67654ffb7 | 30 | |
yfkwok | 1:61b67654ffb7 | 31 | wait(1.0f/fps); // and wait for one frame period |
yfkwok | 1:61b67654ffb7 | 32 | |
yfkwok | 1:61b67654ffb7 | 33 | while(1) { |
yfkwok | 1:61b67654ffb7 | 34 | |
yfkwok | 1:61b67654ffb7 | 35 | } |
yfkwok | 1:61b67654ffb7 | 36 | |
yfkwok | 1:61b67654ffb7 | 37 | } |
yfkwok | 1:61b67654ffb7 | 38 | |
yfkwok | 1:61b67654ffb7 | 39 | // initialies all classes and libraries |
yfkwok | 1:61b67654ffb7 | 40 | void init() |
yfkwok | 1:61b67654ffb7 | 41 | { |
yfkwok | 1:61b67654ffb7 | 42 | lcd.init(); |
yfkwok | 1:61b67654ffb7 | 43 | // change set contrast in range 0.0 to 1.0 |
yfkwok | 1:61b67654ffb7 | 44 | // 0.4 appears to be a good starting point |
yfkwok | 1:61b67654ffb7 | 45 | lcd.setContrast(0.4); |
yfkwok | 1:61b67654ffb7 | 46 | } |
yfkwok | 1:61b67654ffb7 | 47 | |
yfkwok | 1:61b67654ffb7 | 48 | // simple splash screen displayed on start-up |
yfkwok | 1:61b67654ffb7 | 49 | void welcome() |
yfkwok | 1:61b67654ffb7 | 50 | { |
yfkwok | 1:61b67654ffb7 | 51 | lcd.clear(); |
yfkwok | 1:61b67654ffb7 | 52 | static int title_data[] = { |
yfkwok | 1:61b67654ffb7 | 53 | 0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 54 | 0,0,0,0,0,0,0,0,0,0,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, |
yfkwok | 1:61b67654ffb7 | 55 | 0,0,0,0,0,0,0,0,0,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,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, |
yfkwok | 1:61b67654ffb7 | 56 | 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,1,0,0,0,0,1,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, |
yfkwok | 1:61b67654ffb7 | 57 | 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,1,1,1,0,0,0,1,0,1,1,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,0,0, |
yfkwok | 1:61b67654ffb7 | 58 | 0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 59 | 0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 60 | 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,0,0, |
yfkwok | 1:61b67654ffb7 | 61 | 0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0, |
yfkwok | 1:61b67654ffb7 | 62 | 0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 63 | 0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 64 | 0,0,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 65 | 0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 66 | 0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 67 | 0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 68 | 0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 69 | 0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 70 | 0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 71 | 0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 72 | 0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 73 | 0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,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,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 74 | 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,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, |
yfkwok | 1:61b67654ffb7 | 75 | 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,0,0,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, |
yfkwok | 1:61b67654ffb7 | 76 | 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
yfkwok | 1:61b67654ffb7 | 77 | 0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0, |
yfkwok | 1:61b67654ffb7 | 78 | 0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0, |
yfkwok | 1:61b67654ffb7 | 79 | 0,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0, |
yfkwok | 1:61b67654ffb7 | 80 | 0,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0, |
yfkwok | 1:61b67654ffb7 | 81 | 0,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0, |
yfkwok | 1:61b67654ffb7 | 82 | 0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0, |
yfkwok | 1:61b67654ffb7 | 83 | 0,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,1,0,0,1,1,1,0,0, |
yfkwok | 1:61b67654ffb7 | 84 | 0,1,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 85 | 0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,0,1,0,0,1,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 86 | 0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,0,0, |
yfkwok | 1:61b67654ffb7 | 87 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
yfkwok | 1:61b67654ffb7 | 88 | }; |
yfkwok | 1:61b67654ffb7 | 89 | |
yfkwok | 1:61b67654ffb7 | 90 | lcd.drawSprite(10, 3, 35, 65, title_data); |
yfkwok | 1:61b67654ffb7 | 91 | |
yfkwok | 1:61b67654ffb7 | 92 | static int start_data[] = { |
yfkwok | 1:61b67654ffb7 | 93 | 1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1, |
yfkwok | 1:61b67654ffb7 | 94 | 1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0, |
yfkwok | 1:61b67654ffb7 | 95 | 1,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,1,0, |
yfkwok | 1:61b67654ffb7 | 96 | 1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,0,1,0, |
yfkwok | 1:61b67654ffb7 | 97 | 1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0 |
yfkwok | 1:61b67654ffb7 | 98 | }; |
yfkwok | 1:61b67654ffb7 | 99 | |
yfkwok | 1:61b67654ffb7 | 100 | bool flash = true; |
yfkwok | 1:61b67654ffb7 | 101 | if (flash) { |
yfkwok | 1:61b67654ffb7 | 102 | lcd.drawSprite(22, 41, 5, 41, start_data); |
yfkwok | 1:61b67654ffb7 | 103 | flash = !flash; |
yfkwok | 1:61b67654ffb7 | 104 | } |
yfkwok | 1:61b67654ffb7 | 105 | else { |
yfkwok | 1:61b67654ffb7 | 106 | flash = !flash; |
yfkwok | 1:61b67654ffb7 | 107 | } |
yfkwok | 1:61b67654ffb7 | 108 | |
yfkwok | 1:61b67654ffb7 | 109 | lcd.refresh(); |
yfkwok | 1:61b67654ffb7 | 110 | |
yfkwok | 1:61b67654ffb7 | 111 | wait(1.0); |
yfkwok | 1:61b67654ffb7 | 112 | } |