Mochu Yao explorer game
Dependencies: mbed
explorer/explorer.h@14:5e73a6e34c17, 2020-04-28 (annotated)
- Committer:
- el17my
- Date:
- Tue Apr 28 11:55:05 2020 +0000
- Revision:
- 14:5e73a6e34c17
- Parent:
- 13:30330d61f09c
- Child:
- 17:1b4ecc01b79f
4.28
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el17my | 14:5e73a6e34c17 | 1 | #ifndef EXPLORER_H |
el17my | 14:5e73a6e34c17 | 2 | #define EXPLORER_H |
el17my | 14:5e73a6e34c17 | 3 | |
el17my | 14:5e73a6e34c17 | 4 | |
el17my | 14:5e73a6e34c17 | 5 | #include "mbed.h" |
el17my | 14:5e73a6e34c17 | 6 | #include "Gamepad.h" |
el17my | 14:5e73a6e34c17 | 7 | #include "surface.h" |
el17my | 14:5e73a6e34c17 | 8 | //use the enum to define the value we need for the explorer |
el17my | 14:5e73a6e34c17 | 9 | enum Explorer_sprite {Move_right,Move_left,Stand_left, Stand_right}; |
el17my | 14:5e73a6e34c17 | 10 | //we have four sprite form so we can define the sprite on the screen by using these enum |
el17my | 14:5e73a6e34c17 | 11 | //the explorer's direction |
el17my | 14:5e73a6e34c17 | 12 | enum Player_direction {right,left}; |
el17my | 14:5e73a6e34c17 | 13 | |
el17my | 14:5e73a6e34c17 | 14 | /** Explorer Class |
el17my | 7:88c4ba6bb37b | 15 | /** explorer |
el17my | 7:88c4ba6bb37b | 16 | * @the explorer file has three functions |
el17my | 7:88c4ba6bb37b | 17 | 1 the movement of a explorer to jump and move in left or right direction |
el17my | 7:88c4ba6bb37b | 18 | 2 check fallen and collision |
el17my | 7:88c4ba6bb37b | 19 | 3 reset the game |
el17my | 7:88c4ba6bb37b | 20 | * @date April 15th 2020 |
el17my | 7:88c4ba6bb37b | 21 | * @author Yaomochu |
el17my | 10:559487aac60e | 22 | |
el17my | 10:559487aac60e | 23 | @code |
el17my | 10:559487aac60e | 24 | |
el17my | 7:88c4ba6bb37b | 25 | #include "mbed.h" |
el17my | 10:559487aac60e | 26 | #include "N5110.h" |
el17my | 10:559487aac60e | 27 | #include "Gamepad.h" |
el17my | 10:559487aac60e | 28 | #include "explorer.h" |
el17my | 10:559487aac60e | 29 | #include <cstdlib> |
el17my | 10:559487aac60e | 30 | #include <ctime> |
el17my | 10:559487aac60e | 31 | |
el17my | 10:559487aac60e | 32 | Gamepad gamepad; |
el17my | 10:559487aac60e | 33 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
el17my | 10:559487aac60e | 34 | Explorer _player; |
el17my | 10:559487aac60e | 35 | |
el17my | 10:559487aac60e | 36 | int _player_x; |
el17my | 10:559487aac60e | 37 | int _player_y; |
el17my | 10:559487aac60e | 38 | bool _f_flag; |
el17my | 10:559487aac60e | 39 | bool _r_flag; |
el17my | 10:559487aac60e | 40 | bool _start_flag; |
el17my | 10:559487aac60e | 41 | int _speed; |
el17my | 10:559487aac60e | 42 | int _jump_height; |
el17my | 10:559487aac60e | 43 | Player_direction _player_direction; |
el17my | 10:559487aac60e | 44 | Explorer_sprite _explorer_sprite; |
el17my | 10:559487aac60e | 45 | |
el17my | 10:559487aac60e | 46 | int main() { |
el17my | 10:559487aac60e | 47 | _player.init(); |
el17my | 10:559487aac60e | 48 | _start_flag = true; |
el17my | 10:559487aac60e | 49 | while(1) { |
el17my | 10:559487aac60e | 50 | |
el17my | 10:559487aac60e | 51 | // Y coordinate |
el17my | 10:559487aac60e | 52 | if (_f_flag == true) |
el17my | 10:559487aac60e | 53 | { |
el17my | 10:559487aac60e | 54 | _player.fall(_f_flag, gamepad); |
el17my | 10:559487aac60e | 55 | } else { |
el17my | 10:559487aac60e | 56 | _player.set_y_coordinate(false, _jump_height); } |
el17my | 10:559487aac60e | 57 | _f_flag = _player.get_fall_flag(); |
el17my | 10:559487aac60e | 58 | _player_y = _player.get_y(); |
el17my | 10:559487aac60e | 59 | _jump_height = _player.get_jump_height(); |
el17my | 10:559487aac60e | 60 | |
el17my | 10:559487aac60e | 61 | // X coordinate |
el17my | 10:559487aac60e | 62 | _player_x = _player.get_x(); |
el17my | 10:559487aac60e | 63 | _speed = _player.get_speed(); |
el17my | 10:559487aac60e | 64 | _player.set_x_coordinate(1, _speed, _player_direction); |
el17my | 10:559487aac60e | 65 | |
el17my | 10:559487aac60e | 66 | |
el17my | 10:559487aac60e | 67 | //change in to a new direction. |
el17my | 10:559487aac60e | 68 | _player_direction = _player.get_direction(); |
el17my | 10:559487aac60e | 69 | |
el17my | 10:559487aac60e | 70 | _r_flag = _player.get_reset_flag(); |
el17my | 10:559487aac60e | 71 | |
el17my | 10:559487aac60e | 72 | lcd.drawSprite(_player_x,_player_y,10,10,(int *)_player.get_form(_explorer_sprite));//draw the player |
el17my | 10:559487aac60e | 73 | } |
el17my | 10:559487aac60e | 74 | } |
el17my | 13:30330d61f09c | 75 | |
el17my | 10:559487aac60e | 76 | @endcode |
el17my | 10:559487aac60e | 77 | */ |
el17my | 13:30330d61f09c | 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 | 12:bb89733cc51a | 119 | Line _line_1; |
el17my | 12:bb89733cc51a | 120 | Line _line_2; |
el17my | 12:bb89733cc51a | 121 | Line _line_3; |
el17my | 12:bb89733cc51a | 122 | Line _line_4; |
el17my | 12:bb89733cc51a | 123 | Line _line_5; |
el17my | 12:bb89733cc51a | 124 | Line _line_6; |
el17my | 12:bb89733cc51a | 125 | Player_direction _player_direction; |
el17my | 12:bb89733cc51a | 126 | Explorer_sprite _explorer_sprite; |
el17my | 7:88c4ba6bb37b | 127 | }; |
el17my | 7:88c4ba6bb37b | 128 | #endif |