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

Committer:
yfkwok
Date:
Sun Apr 14 15:56:58 2019 +0000
Revision:
11:5a6b9dffd78a
Parent:
10:adff3c804985
Child:
12:71683453f66a
14/4/2019 - Integer type of all sprites changed from "static int' to "int"

Who changed what in which revision?

UserRevisionLine numberNew 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 11:5a6b9dffd78a 20 int bulbasaur_data[17][20] = {
yfkwok 11:5a6b9dffd78a 21 {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0},
yfkwok 11:5a6b9dffd78a 22 {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0},
yfkwok 11:5a6b9dffd78a 23 {0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0},
yfkwok 11:5a6b9dffd78a 24 {0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0},
yfkwok 11:5a6b9dffd78a 25 {0,0,0,1,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0},
yfkwok 11:5a6b9dffd78a 26 {0,0,1,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1},
yfkwok 11:5a6b9dffd78a 27 {0,0,1,0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,1},
yfkwok 11:5a6b9dffd78a 28 {0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1},
yfkwok 11:5a6b9dffd78a 29 {0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0},
yfkwok 11:5a6b9dffd78a 30 {1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0},
yfkwok 11:5a6b9dffd78a 31 {1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0},
yfkwok 11:5a6b9dffd78a 32 {1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0},
yfkwok 11:5a6b9dffd78a 33 {1,0,0,0,0,0,1,1,0,0,0,0,1,0,0,1,1,1,0,0},
yfkwok 11:5a6b9dffd78a 34 {0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0},
yfkwok 11:5a6b9dffd78a 35 {0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0},
yfkwok 11:5a6b9dffd78a 36 {0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0},
yfkwok 11:5a6b9dffd78a 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 11:5a6b9dffd78a 42 lcd.drawSprite(_pos_x, _pos_y, 17, 20, (int *)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 11:5a6b9dffd78a 94 int instruct_data[4][7] = {
yfkwok 11:5a6b9dffd78a 95 {1,1,1,1,1,1,1},
yfkwok 11:5a6b9dffd78a 96 {0,1,1,1,1,1,0},
yfkwok 11:5a6b9dffd78a 97 {0,0,1,1,1,0,0},
yfkwok 11:5a6b9dffd78a 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 11:5a6b9dffd78a 110 lcd.drawSprite(39, 44, 4, 7, (int*)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 11:5a6b9dffd78a 122 lcd.drawSprite(39, 44, 4, 7, (int*)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 }