Mochu Yao explorer game
Dependencies: mbed
item/item.cpp@1:ed745421d8c4, 2020-04-15 (annotated)
- Committer:
- el17my
- Date:
- Wed Apr 15 08:17:18 2020 +0000
- Revision:
- 1:ed745421d8c4
- Child:
- 3:672d4bd8225d
second part of the code 4/13
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el17my | 1:ed745421d8c4 | 1 | #include "item.h" |
el17my | 1:ed745421d8c4 | 2 | |
el17my | 1:ed745421d8c4 | 3 | // Define sprite arrays. |
el17my | 1:ed745421d8c4 | 4 | int barrier_form[7][7] = { |
el17my | 1:ed745421d8c4 | 5 | { 0,0,0,0,0,0,0 }, |
el17my | 1:ed745421d8c4 | 6 | { 0,1,1,1,1,1,0 }, |
el17my | 1:ed745421d8c4 | 7 | { 0,1,0,0,0,1,0 }, |
el17my | 1:ed745421d8c4 | 8 | { 0,1,0,0,0,1,0 }, |
el17my | 1:ed745421d8c4 | 9 | { 0,1,0,0,0,1,0 }, |
el17my | 1:ed745421d8c4 | 10 | { 0,1,0,0,0,1,0 }, |
el17my | 1:ed745421d8c4 | 11 | { 0,1,1,1,1,1,0 }, |
el17my | 1:ed745421d8c4 | 12 | }; |
el17my | 1:ed745421d8c4 | 13 | |
el17my | 1:ed745421d8c4 | 14 | int item_form[6][5] = { |
el17my | 1:ed745421d8c4 | 15 | { 0,0,1,1,0,0}, |
el17my | 1:ed745421d8c4 | 16 | { 0,1,0,0,1,0}, |
el17my | 1:ed745421d8c4 | 17 | { 1,0,1,0,0,1}, |
el17my | 1:ed745421d8c4 | 18 | { 0,1,0,0,1,0}, |
el17my | 1:ed745421d8c4 | 19 | { 0,0,1,1,0,0}, |
el17my | 1:ed745421d8c4 | 20 | }; |
el17my | 1:ed745421d8c4 | 21 | |
el17my | 1:ed745421d8c4 | 22 | int item_vertical[6][5] = { |
el17my | 1:ed745421d8c4 | 23 | { 0,0,1,1,0,0}, |
el17my | 1:ed745421d8c4 | 24 | { 0,0,1,1,0,0}, |
el17my | 1:ed745421d8c4 | 25 | { 0,0,1,1,0,0}, |
el17my | 1:ed745421d8c4 | 26 | { 0,0,1,1,0,0}, |
el17my | 1:ed745421d8c4 | 27 | { 0,0,1,1,0,0}, |
el17my | 1:ed745421d8c4 | 28 | }; |
el17my | 1:ed745421d8c4 | 29 | |
el17my | 1:ed745421d8c4 | 30 | // Constructor and destructor. |
el17my | 1:ed745421d8c4 | 31 | item::item() {} |
el17my | 1:ed745421d8c4 | 32 | |
el17my | 1:ed745421d8c4 | 33 | item::~item() {} |
el17my | 1:ed745421d8c4 | 34 | |
el17my | 1:ed745421d8c4 | 35 | void item::init() { |
el17my | 1:ed745421d8c4 | 36 | // Starting position of the coin. |
el17my | 1:ed745421d8c4 | 37 | _x = 30; |
el17my | 1:ed745421d8c4 | 38 | _y = 35; |
el17my | 1:ed745421d8c4 | 39 | _bx = 60; |
el17my | 1:ed745421d8c4 | 40 | _by = 30; |
el17my | 1:ed745421d8c4 | 41 | _counter = 0; |
el17my | 1:ed745421d8c4 | 42 | } |
el17my | 1:ed745421d8c4 | 43 | |
el17my | 1:ed745421d8c4 | 44 | void item::generate_item() { |
el17my | 1:ed745421d8c4 | 45 | // make the item rotating every 4 loops |
el17my | 1:ed745421d8c4 | 46 | if (_loop == 3) { |
el17my | 1:ed745421d8c4 | 47 | _loop = 0; |
el17my | 1:ed745421d8c4 | 48 | _rotate_item = !_rotate_item; |
el17my | 1:ed745421d8c4 | 49 | } |
el17my | 1:ed745421d8c4 | 50 | _loop++; |
el17my | 1:ed745421d8c4 | 51 | } |
el17my | 1:ed745421d8c4 | 52 | |
el17my | 1:ed745421d8c4 | 53 | void item::set_item(int rand_x, int rand_y) { |
el17my | 1:ed745421d8c4 | 54 | // Set the item coords based on input values. |
el17my | 1:ed745421d8c4 | 55 | if (rand_y < 40) { |
el17my | 1:ed745421d8c4 | 56 | _y = 35; |
el17my | 1:ed745421d8c4 | 57 | } else { |
el17my | 1:ed745421d8c4 | 58 | _y = 20; |
el17my | 1:ed745421d8c4 | 59 | } |
el17my | 1:ed745421d8c4 | 60 | _x = rand_x; |
el17my | 1:ed745421d8c4 | 61 | if (_x < 5 || _x > 75) { // Ensures the item does not generate off-screen. |
el17my | 1:ed745421d8c4 | 62 | _x = 45; |
el17my | 1:ed745421d8c4 | 63 | } |
el17my | 1:ed745421d8c4 | 64 | } |
el17my | 1:ed745421d8c4 | 65 | |
el17my | 1:ed745421d8c4 | 66 | void item::set_barrier(int rand_x, int rand_y) { |
el17my | 1:ed745421d8c4 | 67 | // Set the item coords based on input values. |
el17my | 1:ed745421d8c4 | 68 | if (rand_dy < 35) { |
el17my | 1:ed745421d8c4 | 69 | _dy = 40; |
el17my | 1:ed745421d8c4 | 70 | } else { |
el17my | 1:ed745421d8c4 | 71 | _dy = 15; |
el17my | 1:ed745421d8c4 | 72 | } |
el17my | 1:ed745421d8c4 | 73 | _dx = rand_dx; |
el17my | 1:ed745421d8c4 | 74 | if (_dx < 5 || _dx > 75) { // Ensures the item does not generate off-screen. |
el17my | 1:ed745421d8c4 | 75 | _dx = 50; |
el17my | 1:ed745421d8c4 | 76 | } |
el17my | 1:ed745421d8c4 | 77 | } |
el17my | 1:ed745421d8c4 | 78 | int *item::get_barrier_sprite() { |
el17my | 1:ed745421d8c4 | 79 | // Return different coin sprites. |
el17my | 1:ed745421d8c4 | 80 | if (_rotate_item) { |
el17my | 1:ed745421d8c4 | 81 | return *item_form; |
el17my | 1:ed745421d8c4 | 82 | } else { |
el17my | 1:ed745421d8c4 | 83 | return *item_vertical; |
el17my | 1:ed745421d8c4 | 84 | } |
el17my | 1:ed745421d8c4 | 85 | } |
el17my | 1:ed745421d8c4 | 86 | |
el17my | 1:ed745421d8c4 | 87 | int *item::get_item_sprite() { |
el17my | 1:ed745421d8c4 | 88 | |
el17my | 1:ed745421d8c4 | 89 | return *barrier_form; |
el17my | 1:ed745421d8c4 | 90 | } |
el17my | 1:ed745421d8c4 | 91 | } |
el17my | 1:ed745421d8c4 | 92 | |
el17my | 1:ed745421d8c4 | 93 | int Coin::get_coin_x() { |
el17my | 1:ed745421d8c4 | 94 | return _x; |
el17my | 1:ed745421d8c4 | 95 | } |
el17my | 1:ed745421d8c4 | 96 | |
el17my | 1:ed745421d8c4 | 97 | int Coin::get_coin_y() { |
el17my | 1:ed745421d8c4 | 98 | return _y; |
el17my | 1:ed745421d8c4 | 99 | } |
el17my | 1:ed745421d8c4 | 100 | int item::get_barrier_bx() { |
el17my | 1:ed745421d8c4 | 101 | return _bx; |
el17my | 1:ed745421d8c4 | 102 | } |
el17my | 1:ed745421d8c4 | 103 | int Coin::get_barrier_by() { |
el17my | 1:ed745421d8c4 | 104 | return _by; |
el17my | 1:ed745421d8c4 | 105 | } |