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:
Wed May 08 23:57:04 2019 +0000
Revision:
33:f7ec806e14b6
Parent:
26:c60becf3f840
09/05/19 - Inline comment added, functionalities complete, all Deoxygen comment added for classes

Who changed what in which revision?

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