Mochu Yao explorer game

Dependencies:   mbed

Revision:
2:89f04cd3bf45
Child:
3:672d4bd8225d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/explorer/explorer.cpp	Mon Apr 20 08:31:02 2020 +0000
@@ -0,0 +1,160 @@
+#include "explorer.h"
+//the explorer.cpp need to defined the module and movement of the explorer including the restarted point 
+int move_right[10][10] =   { 
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,0,0,1,0,1,0,0,0 },
+  { 0,0,1,1,1,1,1,0,0,0 },
+  { 0,0,1,0,1,0,0,0,0,0 },
+  { 0,0,0,0,1,0,0,0,0,0 },
+  { 0,0,0,0,1,1,1,0,0,0 },
+  { 0,0,0,1,0,0,0,1,0,0 },
+  { 1,0,1,0,0,0,0,0,1,0 },
+  { 0,1,0,0,0,0,0,0,0,1 },
+};
+
+int move_left[10][10] =   { 
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,1,0,1,0,0,0,0,0 },
+  { 0,0,1,1,1,1,1,0,0,0 },
+  { 0,0,0,0,1,0,1,0,0,0 },
+  { 0,0,0,0,1,0,0,0,0,0 },
+  { 0,0,0,1,1,0,0,0,0,0 },
+  { 0,0,1,0,0,1,0,0,0,0 },
+  { 0,1,0,0,0,0,1,0,1,0 },
+  { 1,0,0,0,0,0,0,1,0,0 },
+};
+
+int stand_right[10][10] =   { 
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,0,0,1,0,1,0,0,0 },
+  { 0,0,1,1,1,1,1,0,0,0 },
+  { 0,0,1,0,1,0,0,0,0,0 },
+  { 0,0,0,0,1,0,0,0,0,0 },
+  { 0,0,0,0,1,0,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+};
+
+int stand_left[10][10] =   { 
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,1,1,0,0,0,0 },
+  { 0,0,1,0,1,0,0,0,0,0 },
+  { 0,0,1,1,1,1,1,0,0,0 },
+  { 0,0,0,0,1,0,1,0,0,0 },
+  { 0,0,0,0,1,0,0,0,0,0 },
+  { 0,0,0,0,1,0,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+  { 0,0,0,1,0,1,0,0,0,0 },
+};
+
+Explorer::explorer() {} 
+
+Explorer::~explorer() {}
+
+void Explorer::set_x_coordinate((float joystick_x, int move, Player_direction direction, float joystick_y)
+{
+  //this process is to set x and make sure the player can move          
+  _player_direction = direction;
+  _move_counter = move;
+  change_x(joystick_x);      
+  _x = 0.3*_move_counter + 30;
+}
+
+
+void Explorer::change_x(float joystick_x) { 
+  //now x is moving to the left than add to the X position
+  else if (joystick_x < float(-0.1)) {
+    _move_counter = _move_counter--;
+    _player_direction = left;
+    _respond_value = move_left; 
+  //now x is moving to the right than add to the X position
+  } else if (joystick_x > float(0.1)) {
+    _move_counter = _move_counter++;
+    _player_direction = right; 
+    _respond_value = move_right; 
+  } else if (_player_direction == right) {  // not moving.
+    _respond_value = stand_right;
+  } else { 
+    _respond_value = stand_left;
+  } 
+}
+
+void Explorer::reset_flag(bool flag) {
+  if (flag) {
+    _r_flag = true;
+  } else {
+    _r_flag = false;
+  }
+}
+    
+void explorer::set_y_coordinate(bool ifjump, int jump_counter, int level, Gamepad &gamepad);
+  _level = level; 
+  _jump_counter = jump_counter;
+  // jump need to have this function
+  // when you jump makesure the module will not be offscreen also if you fall from the surface you can not jump back again
+  if (ifjump && _jump_counter < ) {  
+    _jump_counter = ;  // 
+  }
+  //not offscreen and back to the surface        
+  if (_level == 1 && ifjump){
+    _level = ;
+  } else if (_level == 0) {
+    _level = ;
+  }
+  if (_jump_counter !=) _jump_counter--;
+  _y = _level - *_jump_counter;
+  
+int Explorer::get_y() {
+  return _y;
+}
+
+int Explorer::get_x() {
+  return _x;
+}
+  
+int Explorer::get_m_counter();() {
+  return _moving_counter;
+  
+int Explorer::get_j_counter() {
+  return _jump_counter;
+}
+
+bool Explorer::get_f_flag() {
+  return _f_flag;
+}
+
+bool Skateboarder::get_reset_flag() {
+  return _r_flag;
+}
+
+int * Explorer::* get_respond(Respond_value respond){
+  if (respond == Move_right) {
+    return *skate_right;
+  } else if (respond == Move_left) {
+    return *skate_left;
+  } else if (respond == Stand_left) {
+    return *skate_stand_left;
+  } else if (respond == Stand_right) {
+    return *skate_stand_left;
+  }
+}
+ 
+void Explorer::fall(bool f_flag, Gamepad &gamepad) { 
+  _f_flag = f_flag;
+  gamepad.tone(int(-15.8*_y + 1363), 0.05);  // decending equation 
+  _y++;
+  wait(0.01);  // Control fall time and fall sound speed.
+  if (_y == ) {  // Stop falling when y = 80. 
+    _f_flag = false;
+    _r_flag = true;
+  }
+}    
\ No newline at end of file