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
Characters/Bulbasaur.cpp@10:adff3c804985, 2019-04-12 (annotated)
- Committer:
- yfkwok
- Date:
- Fri Apr 12 17:19:14 2019 +0000
- Revision:
- 10:adff3c804985
- Parent:
- 2:464c7e62d97d
- Child:
- 11:5a6b9dffd78a
12/4/2019 - Sprite format change
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yfkwok | 2:464c7e62d97d | 1 | #include "Bulbasaur.h" |
yfkwok | 2:464c7e62d97d | 2 | |
yfkwok | 2:464c7e62d97d | 3 | Bulbasaur::Bulbasaur() |
yfkwok | 2:464c7e62d97d | 4 | { |
yfkwok | 2:464c7e62d97d | 5 | |
yfkwok | 2:464c7e62d97d | 6 | } |
yfkwok | 2:464c7e62d97d | 7 | |
yfkwok | 2:464c7e62d97d | 8 | Bulbasaur::~Bulbasaur() |
yfkwok | 2:464c7e62d97d | 9 | { |
yfkwok | 2:464c7e62d97d | 10 | |
yfkwok | 2:464c7e62d97d | 11 | } |
yfkwok | 2:464c7e62d97d | 12 | |
yfkwok | 2:464c7e62d97d | 13 | //Enumerate instruction menu from page 1 - 3 |
yfkwok | 2:464c7e62d97d | 14 | enum Page { |
yfkwok | 2:464c7e62d97d | 15 | PAGE_1, PAGE_2, PAGE_3 |
yfkwok | 2:464c7e62d97d | 16 | }; |
yfkwok | 2:464c7e62d97d | 17 | |
yfkwok | 2:464c7e62d97d | 18 | void Bulbasaur::draw_cha1_sprite(int pos_x, int pos_y,N5110 &lcd) |
yfkwok | 2:464c7e62d97d | 19 | { |
yfkwok | 2:464c7e62d97d | 20 | static int bulbasaur_data[] = { |
yfkwok | 2:464c7e62d97d | 21 | 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0, |
yfkwok | 2:464c7e62d97d | 22 | 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0, |
yfkwok | 2:464c7e62d97d | 23 | 0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0, |
yfkwok | 2:464c7e62d97d | 24 | 0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0, |
yfkwok | 2:464c7e62d97d | 25 | 0,0,0,1,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0, |
yfkwok | 2:464c7e62d97d | 26 | 0,0,1,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1, |
yfkwok | 2:464c7e62d97d | 27 | 0,0,1,0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,1, |
yfkwok | 2:464c7e62d97d | 28 | 0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1, |
yfkwok | 2:464c7e62d97d | 29 | 0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0, |
yfkwok | 2:464c7e62d97d | 30 | 1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0, |
yfkwok | 2:464c7e62d97d | 31 | 1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0, |
yfkwok | 2:464c7e62d97d | 32 | 1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0, |
yfkwok | 2:464c7e62d97d | 33 | 1,0,0,0,0,0,1,1,0,0,0,0,1,0,0,1,1,1,0,0, |
yfkwok | 2:464c7e62d97d | 34 | 0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0, |
yfkwok | 2:464c7e62d97d | 35 | 0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0, |
yfkwok | 2:464c7e62d97d | 36 | 0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0, |
yfkwok | 2:464c7e62d97d | 37 | 0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0 |
yfkwok | 2:464c7e62d97d | 38 | }; |
yfkwok | 2:464c7e62d97d | 39 | |
yfkwok | 2:464c7e62d97d | 40 | _pos_x = pos_x; |
yfkwok | 2:464c7e62d97d | 41 | _pos_y = pos_y; |
yfkwok | 2:464c7e62d97d | 42 | lcd.drawSprite(_pos_x, _pos_y, 17, 20, bulbasaur_data); |
yfkwok | 2:464c7e62d97d | 43 | } |
yfkwok | 2:464c7e62d97d | 44 | |
yfkwok | 10:adff3c804985 | 45 | void Bulbasaur::evo_one(N5110 &lcd) |
yfkwok | 10:adff3c804985 | 46 | { |
yfkwok | 10:adff3c804985 | 47 | int evo_1_sprite_data[38][41] = { |
yfkwok | 10:adff3c804985 | 48 | {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,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 49 | {0,0,0,0,0,0,0,1,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}, |
yfkwok | 10:adff3c804985 | 50 | {0,0,0,0,0,0,1,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}, |
yfkwok | 10:adff3c804985 | 51 | {0,0,0,0,0,1,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}, |
yfkwok | 10:adff3c804985 | 52 | {0,0,0,0,1,0,0,0,0,0,0,0,1,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}, |
yfkwok | 10:adff3c804985 | 53 | {0,0,0,0,1,0,0,0,0,0,0,1,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}, |
yfkwok | 10:adff3c804985 | 54 | {0,0,0,1,1,0,0,0,0,0,0,0,0,1,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}, |
yfkwok | 10:adff3c804985 | 55 | {0,0,0,1,0,1,0,0,0,0,0,0,1,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}, |
yfkwok | 10:adff3c804985 | 56 | {0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 57 | {0,0,0,1,1,0,0,0,0,0,0,0,1,1,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}, |
yfkwok | 10:adff3c804985 | 58 | {0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 59 | {0,0,1,0,0,1,0,1,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}, |
yfkwok | 10:adff3c804985 | 60 | {0,0,1,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 61 | {0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 62 | {0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 63 | {0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 64 | {0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 65 | {0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0}, |
yfkwok | 10:adff3c804985 | 66 | {0,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,0,0}, |
yfkwok | 10:adff3c804985 | 67 | {1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,0}, |
yfkwok | 10:adff3c804985 | 68 | {1,0,0,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0}, |
yfkwok | 10:adff3c804985 | 69 | {0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1}, |
yfkwok | 10:adff3c804985 | 70 | {0,0,0,1,1,0,1,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,1}, |
yfkwok | 10:adff3c804985 | 71 | {0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,1}, |
yfkwok | 10:adff3c804985 | 72 | {0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,1,1,0}, |
yfkwok | 10:adff3c804985 | 73 | {0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,1,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,1,0}, |
yfkwok | 10:adff3c804985 | 74 | {0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0}, |
yfkwok | 10:adff3c804985 | 75 | {0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,1,1,0,0,0}, |
yfkwok | 10:adff3c804985 | 76 | {0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 77 | {0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 78 | {0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 79 | {0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 80 | {0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 81 | {0,0,0,0,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 82 | {0,0,0,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 83 | {0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 84 | {0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 85 | {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,0,0,0,0,0,0,0,0,0,0}, |
yfkwok | 10:adff3c804985 | 86 | }; |
yfkwok | 10:adff3c804985 | 87 | lcd.drawSprite(34, 8, 38, 41, (int *)evo_1_sprite_data); |
yfkwok | 10:adff3c804985 | 88 | } |
yfkwok | 10:adff3c804985 | 89 | |
yfkwok | 2:464c7e62d97d | 90 | void Bulbasaur::description(Gamepad &pad, N5110 &lcd) |
yfkwok | 2:464c7e62d97d | 91 | { |
yfkwok | 2:464c7e62d97d | 92 | Page currentPage = PAGE_1; |
yfkwok | 2:464c7e62d97d | 93 | int fps = 8.0; |
yfkwok | 2:464c7e62d97d | 94 | static int instruct_data[] = { |
yfkwok | 2:464c7e62d97d | 95 | 1,1,1,1,1,1,1, |
yfkwok | 2:464c7e62d97d | 96 | 0,1,1,1,1,1,0, |
yfkwok | 2:464c7e62d97d | 97 | 0,0,1,1,1,0,0, |
yfkwok | 2:464c7e62d97d | 98 | 0,0,0,1,0,0,0 |
yfkwok | 2:464c7e62d97d | 99 | }; |
yfkwok | 2:464c7e62d97d | 100 | |
yfkwok | 2:464c7e62d97d | 101 | while(pad.check_event(Gamepad::B_PRESSED) == false){ |
yfkwok | 2:464c7e62d97d | 102 | switch (currentPage) { |
yfkwok | 2:464c7e62d97d | 103 | case PAGE_1: |
yfkwok | 2:464c7e62d97d | 104 | lcd.clear(); |
yfkwok | 2:464c7e62d97d | 105 | lcd.printString("Bulbasaur",0,0); |
yfkwok | 2:464c7e62d97d | 106 | lcd.printString("is so lazy",0,1); |
yfkwok | 2:464c7e62d97d | 107 | lcd.printString("that he never",0,2); |
yfkwok | 2:464c7e62d97d | 108 | lcd.printString("finds time to",0,3); |
yfkwok | 2:464c7e62d97d | 109 | lcd.printString("do actual work",0,4); |
yfkwok | 2:464c7e62d97d | 110 | lcd.drawSprite(39, 44, 4, 7, instruct_data); |
yfkwok | 2:464c7e62d97d | 111 | lcd.refresh(); |
yfkwok | 2:464c7e62d97d | 112 | if(pad.get_direction() == S){currentPage = PAGE_2;} |
yfkwok | 2:464c7e62d97d | 113 | wait(1.0f/fps); |
yfkwok | 2:464c7e62d97d | 114 | break; |
yfkwok | 2:464c7e62d97d | 115 | case PAGE_2: |
yfkwok | 2:464c7e62d97d | 116 | lcd.clear(); |
yfkwok | 2:464c7e62d97d | 117 | lcd.printString("Easily lured",0,0); |
yfkwok | 2:464c7e62d97d | 118 | lcd.printString("by YouTube",0,1); |
yfkwok | 2:464c7e62d97d | 119 | lcd.printString("and social",0,2); |
yfkwok | 2:464c7e62d97d | 120 | lcd.printString("apps! Motivate",0,3); |
yfkwok | 2:464c7e62d97d | 121 | lcd.printString("him so that he",0,4); |
yfkwok | 2:464c7e62d97d | 122 | lcd.drawSprite(39, 44, 4, 7, instruct_data); |
yfkwok | 2:464c7e62d97d | 123 | lcd.refresh(); |
yfkwok | 2:464c7e62d97d | 124 | if(pad.get_direction() == S){currentPage = PAGE_3;} |
yfkwok | 2:464c7e62d97d | 125 | wait(1.0f/fps); |
yfkwok | 2:464c7e62d97d | 126 | break; |
yfkwok | 2:464c7e62d97d | 127 | case PAGE_3: |
yfkwok | 2:464c7e62d97d | 128 | lcd.clear(); |
yfkwok | 2:464c7e62d97d | 129 | lcd.printString("can graduate!",0,0); |
yfkwok | 2:464c7e62d97d | 130 | lcd.printString("Press B",0,5); |
yfkwok | 2:464c7e62d97d | 131 | lcd.refresh(); |
yfkwok | 2:464c7e62d97d | 132 | wait(1.0f/fps); |
yfkwok | 2:464c7e62d97d | 133 | } |
yfkwok | 2:464c7e62d97d | 134 | } |
yfkwok | 2:464c7e62d97d | 135 | } |