Mochu Yao explorer game

Dependencies:   mbed

item/item.cpp

Committer:
el17my
Date:
2020-04-21
Revision:
4:64746224ab6e
Parent:
3:672d4bd8225d
Child:
7:88c4ba6bb37b

File content as of revision 4:64746224ab6e:

#include "item.h"

// Define sprite arrays.
//this is the forward form of the item
int item_form[6][5] = {
  { 0,0,1,1,0,0},
  { 0,1,0,0,1,0},
  { 1,0,0,0,0,1},
  { 0,1,0,0,1,0},
  { 0,0,1,1,0,0},
};
//this is the vertical form of the item
int item_vertical[6][5] = {
  { 0,0,1,1,0,0},
  { 0,0,1,1,0,0},
  { 0,0,1,1,0,0},
  { 0,0,1,1,0,0},
  { 0,0,1,1,0,0},
};

// Constructor and destructor.
item::item() {} 

item::~item() {}

void item::init() {
  // Starting position of the item.
  _x = 40;
  _y = 40;
  _loop = 0;//the loop must be set to zero
}

void item::generate_item() {
  // make the item rotating every 4 loops
  for(_loop = 0; loop<4; _loop++;) {
  if (_loop == 3) {
    _loop = 0;
    _rotate_item = !_rotate_item;
  } 
  wait(0.05);    
}

void item::set_item(int random_x, int random_y) {
  // Set the item coords based on input values.
  // This function must have two rules
  //1 the item must be generated on the surface but not in the air
  //2 the item must be in the srceen or the explorer can not collect them
  if (_x < 6 || _x > 74) {  // Ensures the item does not generate off-screen.
    _x = 40;//go back to the intial position
  else if (_y < 5 || _y > 75) 
  {
    _y = 50; };//go back to the intial position
  //according to the height of the line, the item must be generated upper the line but can not be so high
  //if y >40, the item need to be one the second line and if is lower it has to be one the lower line
  if (random_y > 40) {  
    _y = 40; 
  } else {
    _y = 25;
  }
  _x = random_x;//x can be every random value between 6 and 74
}

int *item::get_item_form() {
  //by changing the form from forward to vertical each 4 loop the item can start rotating 
  if (_rotate_item) {
    return *item_form;
  } else if(!_rotate_item) {
    return *item_vertical;
  }
}

int item::get_item_x() {
  return _x;
}

int item::get_item_y() {
  return _y;
} 

}