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:
Thu Apr 18 04:53:04 2019 +0000
Revision:
14:abe64fe0b6a5
Child:
19:903d67bb0dea
18/04/2019 - Mini Game 2 Implementation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yfkwok 14:abe64fe0b6a5 1 #include "YouTube.h"
yfkwok 14:abe64fe0b6a5 2
yfkwok 14:abe64fe0b6a5 3 YouTube::YouTube()
yfkwok 14:abe64fe0b6a5 4 {
yfkwok 14:abe64fe0b6a5 5
yfkwok 14:abe64fe0b6a5 6 }
yfkwok 14:abe64fe0b6a5 7
yfkwok 14:abe64fe0b6a5 8 YouTube::~YouTube()
yfkwok 14:abe64fe0b6a5 9 {
yfkwok 14:abe64fe0b6a5 10
yfkwok 14:abe64fe0b6a5 11 }
yfkwok 14:abe64fe0b6a5 12
yfkwok 14:abe64fe0b6a5 13 void YouTube::init(int speed)
yfkwok 14:abe64fe0b6a5 14 {
yfkwok 14:abe64fe0b6a5 15 int position = rand() % 8; // randomise initial direction.
yfkwok 14:abe64fe0b6a5 16
yfkwok 14:abe64fe0b6a5 17 // 4 possibilities. Get random modulo and set velocities accordingly
yfkwok 14:abe64fe0b6a5 18 if (position == 0) {
yfkwok 14:abe64fe0b6a5 19 _x = -30;
yfkwok 14:abe64fe0b6a5 20 _y = 12;
yfkwok 14:abe64fe0b6a5 21 _velocity.x = speed * 2;
yfkwok 14:abe64fe0b6a5 22 _velocity.y = speed;
yfkwok 14:abe64fe0b6a5 23 } else if (position == 1) {
yfkwok 14:abe64fe0b6a5 24 _x = 20;
yfkwok 14:abe64fe0b6a5 25 _y = -9;
yfkwok 14:abe64fe0b6a5 26 _velocity.x = speed * 2;
yfkwok 14:abe64fe0b6a5 27 _velocity.y = speed *2;
yfkwok 14:abe64fe0b6a5 28 } else if (position == 2) {
yfkwok 14:abe64fe0b6a5 29 _x = 60;
yfkwok 14:abe64fe0b6a5 30 _y = -9;
yfkwok 14:abe64fe0b6a5 31 _velocity.x = -speed * 2;
yfkwok 14:abe64fe0b6a5 32 _velocity.y = speed *2;
yfkwok 14:abe64fe0b6a5 33 } else if (position == 3) {
yfkwok 14:abe64fe0b6a5 34 _x = 83;
yfkwok 14:abe64fe0b6a5 35 _y = 14;
yfkwok 14:abe64fe0b6a5 36 _velocity.x = -speed * 3;
yfkwok 14:abe64fe0b6a5 37 _velocity.y = speed;
yfkwok 14:abe64fe0b6a5 38 } else if (position == 4) {
yfkwok 14:abe64fe0b6a5 39 _x = 83;
yfkwok 14:abe64fe0b6a5 40 _y = 35;
yfkwok 14:abe64fe0b6a5 41 _velocity.x = -speed * 3;
yfkwok 14:abe64fe0b6a5 42 _velocity.y = -speed *2;
yfkwok 14:abe64fe0b6a5 43 } else if (position == 5) {
yfkwok 14:abe64fe0b6a5 44 _x = 60;
yfkwok 14:abe64fe0b6a5 45 _y = 47;
yfkwok 14:abe64fe0b6a5 46 _velocity.x = -speed * 2;
yfkwok 14:abe64fe0b6a5 47 _velocity.y = -speed *2;
yfkwok 14:abe64fe0b6a5 48 } else if (position == 6) {
yfkwok 14:abe64fe0b6a5 49 _x = 20;
yfkwok 14:abe64fe0b6a5 50 _y = 47;
yfkwok 14:abe64fe0b6a5 51 _velocity.x = speed * 2;
yfkwok 14:abe64fe0b6a5 52 _velocity.y = -speed *2;
yfkwok 14:abe64fe0b6a5 53 } else if (position == 7) {
yfkwok 14:abe64fe0b6a5 54 _x = -30;
yfkwok 14:abe64fe0b6a5 55 _y = 30;
yfkwok 14:abe64fe0b6a5 56 _velocity.x = speed * 3;
yfkwok 14:abe64fe0b6a5 57 _velocity.y = -speed *2;
yfkwok 14:abe64fe0b6a5 58 }
yfkwok 14:abe64fe0b6a5 59 }
yfkwok 14:abe64fe0b6a5 60
yfkwok 14:abe64fe0b6a5 61 void YouTube::draw(N5110 &lcd)
yfkwok 14:abe64fe0b6a5 62 {
yfkwok 14:abe64fe0b6a5 63 int YouTube_data[11][32] = {
yfkwok 14:abe64fe0b6a5 64 {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,0},
yfkwok 14:abe64fe0b6a5 65 {1,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},
yfkwok 14:abe64fe0b6a5 66 {1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,1,1,0,0,0,1,1},
yfkwok 14:abe64fe0b6a5 67 {1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1},
yfkwok 14:abe64fe0b6a5 68 {1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1},
yfkwok 14:abe64fe0b6a5 69 {1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,0,1,1,0,0,0,1,1},
yfkwok 14:abe64fe0b6a5 70 {1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1},
yfkwok 14:abe64fe0b6a5 71 {1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1},
yfkwok 14:abe64fe0b6a5 72 {1,0,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,1},
yfkwok 14:abe64fe0b6a5 73 {1,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},
yfkwok 14:abe64fe0b6a5 74 {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,0},
yfkwok 14:abe64fe0b6a5 75 };
yfkwok 14:abe64fe0b6a5 76
yfkwok 14:abe64fe0b6a5 77 lcd.drawSprite(_x, _y, 11, 32, (int*)YouTube_data);
yfkwok 14:abe64fe0b6a5 78 }
yfkwok 14:abe64fe0b6a5 79
yfkwok 14:abe64fe0b6a5 80 void YouTube::update()
yfkwok 14:abe64fe0b6a5 81 {
yfkwok 14:abe64fe0b6a5 82 _x += _velocity.x;
yfkwok 14:abe64fe0b6a5 83 _y += _velocity.y;
yfkwok 14:abe64fe0b6a5 84 }
yfkwok 14:abe64fe0b6a5 85
yfkwok 14:abe64fe0b6a5 86 void YouTube::set_velocity(Vector2D v)
yfkwok 14:abe64fe0b6a5 87 {
yfkwok 14:abe64fe0b6a5 88 _velocity.x = v.x;
yfkwok 14:abe64fe0b6a5 89 _velocity.y = v.y;
yfkwok 14:abe64fe0b6a5 90 }
yfkwok 14:abe64fe0b6a5 91
yfkwok 14:abe64fe0b6a5 92 Vector2D YouTube::get_velocity()
yfkwok 14:abe64fe0b6a5 93 {
yfkwok 14:abe64fe0b6a5 94 Vector2D v = {_velocity.x,_velocity.y};
yfkwok 14:abe64fe0b6a5 95 return v;
yfkwok 14:abe64fe0b6a5 96 }
yfkwok 14:abe64fe0b6a5 97
yfkwok 14:abe64fe0b6a5 98 Vector2D YouTube::get_pos()
yfkwok 14:abe64fe0b6a5 99 {
yfkwok 14:abe64fe0b6a5 100 Vector2D p = {_x,_y};
yfkwok 14:abe64fe0b6a5 101 return p;
yfkwok 14:abe64fe0b6a5 102 }
yfkwok 14:abe64fe0b6a5 103
yfkwok 14:abe64fe0b6a5 104 void YouTube::set_pos(Vector2D p)
yfkwok 14:abe64fe0b6a5 105 {
yfkwok 14:abe64fe0b6a5 106 _x = p.x;
yfkwok 14:abe64fe0b6a5 107 _y = p.y;
yfkwok 14:abe64fe0b6a5 108 }