Mochu Yao explorer game

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }