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
Game_two/YouTube_files/YouTube.cpp@14:abe64fe0b6a5, 2019-04-18 (annotated)
- 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?
User | Revision | Line number | New 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 | } |