Mochu Yao explorer game

Dependencies:   mbed

Committer:
el17my
Date:
Mon Apr 27 14:29:06 2020 +0000
Revision:
10:559487aac60e
Parent:
8:201ef0618b7d
Child:
11:6740108a0825
add class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17my 7:88c4ba6bb37b 1 /** explorer
el17my 7:88c4ba6bb37b 2 * @the explorer file has three functions
el17my 7:88c4ba6bb37b 3 1 the movement of a explorer to jump and move in left or right direction
el17my 7:88c4ba6bb37b 4 2 check fallen and collision
el17my 7:88c4ba6bb37b 5 3 reset the game
el17my 7:88c4ba6bb37b 6 * @date April 15th 2020
el17my 7:88c4ba6bb37b 7 * @author Yaomochu
el17my 7:88c4ba6bb37b 8 */
el17my 10:559487aac60e 9
el17my 10:559487aac60e 10 /** Explorer Class
el17my 10:559487aac60e 11 @code
el17my 10:559487aac60e 12
el17my 7:88c4ba6bb37b 13 #ifndef EXPLORER_H
el17my 7:88c4ba6bb37b 14 #define EXPLORER_H
el17my 7:88c4ba6bb37b 15
el17my 7:88c4ba6bb37b 16 #include "mbed.h"
el17my 7:88c4ba6bb37b 17 #include "Gamepad.h"
el17my 8:201ef0618b7d 18 #include "surface.h"
el17my 10:559487aac60e 19
el17my 10:559487aac60e 20 #include "mbed.h"
el17my 10:559487aac60e 21 #include "N5110.h"
el17my 10:559487aac60e 22 #include "Gamepad.h"
el17my 10:559487aac60e 23 #include "explorer.h"
el17my 10:559487aac60e 24 #include <cstdlib>
el17my 10:559487aac60e 25 #include <ctime>
el17my 10:559487aac60e 26
el17my 10:559487aac60e 27 Gamepad gamepad;
el17my 10:559487aac60e 28 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
el17my 10:559487aac60e 29 Explorer _player;
el17my 10:559487aac60e 30
el17my 10:559487aac60e 31 int _player_x;
el17my 10:559487aac60e 32 int _player_y;
el17my 10:559487aac60e 33 bool _f_flag;
el17my 10:559487aac60e 34 bool _r_flag;
el17my 10:559487aac60e 35 bool _start_flag;
el17my 10:559487aac60e 36 int _speed;
el17my 10:559487aac60e 37 int _jump_height;
el17my 10:559487aac60e 38 Player_direction _player_direction;
el17my 10:559487aac60e 39 Explorer_sprite _explorer_sprite;
el17my 10:559487aac60e 40
el17my 10:559487aac60e 41 int main() {
el17my 10:559487aac60e 42 _player.init();
el17my 10:559487aac60e 43 _start_flag = true;
el17my 10:559487aac60e 44 while(1) {
el17my 10:559487aac60e 45
el17my 10:559487aac60e 46 // Y coordinate
el17my 10:559487aac60e 47 if (_f_flag == true)
el17my 10:559487aac60e 48 {
el17my 10:559487aac60e 49 _player.fall(_f_flag, gamepad);
el17my 10:559487aac60e 50 } else {
el17my 10:559487aac60e 51 _player.set_y_coordinate(false, _jump_height); }
el17my 10:559487aac60e 52 _f_flag = _player.get_fall_flag();
el17my 10:559487aac60e 53 _player_y = _player.get_y();
el17my 10:559487aac60e 54 _jump_height = _player.get_jump_height();
el17my 10:559487aac60e 55
el17my 10:559487aac60e 56 // X coordinate
el17my 10:559487aac60e 57 _player_x = _player.get_x();
el17my 10:559487aac60e 58 _speed = _player.get_speed();
el17my 10:559487aac60e 59 _player.set_x_coordinate(1, _speed, _player_direction);
el17my 10:559487aac60e 60
el17my 10:559487aac60e 61
el17my 10:559487aac60e 62 //change in to a new direction.
el17my 10:559487aac60e 63 _player_direction = _player.get_direction();
el17my 10:559487aac60e 64
el17my 10:559487aac60e 65 _r_flag = _player.get_reset_flag();
el17my 10:559487aac60e 66
el17my 10:559487aac60e 67 lcd.drawSprite(_player_x,_player_y,10,10,(int *)_player.get_form(_explorer_sprite));//draw the player
el17my 10:559487aac60e 68 }
el17my 10:559487aac60e 69 }
el17my 10:559487aac60e 70 @endcode
el17my 10:559487aac60e 71 */
el17my 10:559487aac60e 72
el17my 7:88c4ba6bb37b 73 //use the enum to define the value we need for the explorer
el17my 8:201ef0618b7d 74 enum Explorer_sprite {Move_right,Move_left,Stand_left, Stand_right};
el17my 7:88c4ba6bb37b 75 //we have four sprite form so we can define the sprite on the screen by using these enum
el17my 7:88c4ba6bb37b 76 //the explorer's direction
el17my 7:88c4ba6bb37b 77 enum Player_direction {right,left};
el17my 7:88c4ba6bb37b 78
el17my 7:88c4ba6bb37b 79 class Explorer {
el17my 7:88c4ba6bb37b 80 public:
el17my 7:88c4ba6bb37b 81 Explorer();
el17my 7:88c4ba6bb37b 82 //Constructor
el17my 7:88c4ba6bb37b 83 ~Explorer();
el17my 7:88c4ba6bb37b 84 //Destructor
el17my 8:201ef0618b7d 85 void init();
el17my 7:88c4ba6bb37b 86 void set_x_coordinate(float joy_x, int speed, Player_direction direction);
el17my 8:201ef0618b7d 87 void set_y_coordinate(bool ifjump, int jump_height);
el17my 7:88c4ba6bb37b 88 int get_y();
el17my 7:88c4ba6bb37b 89
el17my 7:88c4ba6bb37b 90 int get_x();
el17my 7:88c4ba6bb37b 91
el17my 7:88c4ba6bb37b 92 int get_speed();
el17my 7:88c4ba6bb37b 93
el17my 7:88c4ba6bb37b 94 int get_jump_height();
el17my 7:88c4ba6bb37b 95
el17my 7:88c4ba6bb37b 96 Player_direction get_direction();
el17my 7:88c4ba6bb37b 97
el17my 8:201ef0618b7d 98 Explorer_sprite get_explorer_sprite();
el17my 7:88c4ba6bb37b 99
el17my 8:201ef0618b7d 100 int * get_form(Explorer_sprite sprite);
el17my 7:88c4ba6bb37b 101 //this function is used to get the players form and print on the screen (same as the item file)
el17my 7:88c4ba6bb37b 102
el17my 7:88c4ba6bb37b 103 void fall(bool f_flag, Gamepad &gamepad);
el17my 7:88c4ba6bb37b 104 //the fall flag need to add music to hint the player that the game is over
el17my 8:201ef0618b7d 105 void reset_flag(bool flag,Gamepad &gamepad);
el17my 7:88c4ba6bb37b 106 //the reset flag also need to add music to hint the player that the game has been reseted
el17my 7:88c4ba6bb37b 107 bool get_fall_flag();
el17my 7:88c4ba6bb37b 108
el17my 7:88c4ba6bb37b 109 bool get_reset_flag();
el17my 7:88c4ba6bb37b 110
el17my 7:88c4ba6bb37b 111 private:
el17my 7:88c4ba6bb37b 112
el17my 7:88c4ba6bb37b 113 int _x;
el17my 7:88c4ba6bb37b 114 int _y;
el17my 7:88c4ba6bb37b 115 int _speed;
el17my 7:88c4ba6bb37b 116 int _jump_height;
el17my 7:88c4ba6bb37b 117 bool _f_flag;
el17my 7:88c4ba6bb37b 118 bool _r_flag;
el17my 8:201ef0618b7d 119 Line _line_1;
el17my 8:201ef0618b7d 120 Line _line_2;
el17my 8:201ef0618b7d 121 Line _line_3;
el17my 8:201ef0618b7d 122 Line _line_4;
el17my 8:201ef0618b7d 123 Line _line_5;
el17my 8:201ef0618b7d 124 Line _line_6;
el17my 7:88c4ba6bb37b 125 Player_direction _player_direction;
el17my 8:201ef0618b7d 126 Explorer_sprite _explorer_sprite;
el17my 7:88c4ba6bb37b 127 };
el17my 7:88c4ba6bb37b 128 #endif