Mochu Yao explorer game

Dependencies:   mbed

Revision:
1:ed745421d8c4
Child:
3:672d4bd8225d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/item/item.cpp	Wed Apr 15 08:17:18 2020 +0000
@@ -0,0 +1,105 @@
+#include "item.h"
+
+// Define sprite arrays.
+int barrier_form[7][7] = {
+  { 0,0,0,0,0,0,0 },
+  { 0,1,1,1,1,1,0 },
+  { 0,1,0,0,0,1,0 },
+  { 0,1,0,0,0,1,0 },
+  { 0,1,0,0,0,1,0 },
+  { 0,1,0,0,0,1,0 },
+  { 0,1,1,1,1,1,0 },
+};
+
+int item_form[6][5] = {
+  { 0,0,1,1,0,0},
+  { 0,1,0,0,1,0},
+  { 1,0,1,0,0,1},
+  { 0,1,0,0,1,0},
+  { 0,0,1,1,0,0},
+};
+
+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 coin.
+  _x = 30;
+  _y = 35;
+  _bx = 60;
+  _by = 30;
+  _counter = 0;
+}
+
+void item::generate_item() {
+  // make the item rotating every 4 loops
+  if (_loop == 3) {
+    _loop = 0;
+    _rotate_item = !_rotate_item;
+  }
+  _loop++;      
+}
+
+void item::set_item(int rand_x, int rand_y) {
+  // Set the item coords based on input values.
+  if (rand_y < 40) {  
+    _y = 35; 
+  } else {
+    _y = 20;
+  }
+  _x = rand_x;
+  if (_x < 5 || _x > 75) {  // Ensures the item does not generate off-screen.
+    _x = 45; 
+  }
+}
+
+void item::set_barrier(int rand_x, int rand_y) {
+  // Set the item coords based on input values.
+    if (rand_dy < 35) {  
+    _dy = 40; 
+  } else {
+    _dy = 15;
+  }
+  _dx = rand_dx;
+  if (_dx < 5 || _dx > 75) {  // Ensures the item does not generate off-screen.
+    _dx = 50; 
+  }
+}
+int *item::get_barrier_sprite() {
+  // Return different coin sprites.
+  if (_rotate_item) {
+    return *item_form;
+  } else {
+    return *item_vertical;
+  }
+}
+
+int *item::get_item_sprite() {
+    
+    return *barrier_form;
+  }
+}
+
+int Coin::get_coin_x() {
+  return _x;
+}
+
+int Coin::get_coin_y() {
+  return _y;
+} 
+int item::get_barrier_bx() {
+  return _bx;
+} 
+int Coin::get_barrier_by() {
+  return _by;
+} 
\ No newline at end of file