Yufan Zhong / Mbed 2 deprecated GOLD_MINER

Dependencies:   mbed

Committer:
ZhongYufan
Date:
Tue May 12 12:38:14 2020 +0000
Revision:
18:d4fccdf8d90e
Parent:
17:3ba4ec25c4c5
Child:
19:08c582bcdc98
doxygen finished

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ZhongYufan 1:9c7bb3db32bc 1 #ifndef CLAW_H
ZhongYufan 1:9c7bb3db32bc 2 #define CLAW_H
ZhongYufan 1:9c7bb3db32bc 3
ZhongYufan 1:9c7bb3db32bc 4 #include "mbed.h"
ZhongYufan 1:9c7bb3db32bc 5 #include "N5110.h"
ZhongYufan 1:9c7bb3db32bc 6 #include "Gamepad.h"
ZhongYufan 1:9c7bb3db32bc 7 #include "Winch.h"
ZhongYufan 1:9c7bb3db32bc 8 #include "Monster.h"
ZhongYufan 1:9c7bb3db32bc 9
ZhongYufan 1:9c7bb3db32bc 10 /** Claw Class
ZhongYufan 17:3ba4ec25c4c5 11 @brief Controls the claw in the gold miner game
ZhongYufan 16:e3ecfcd2a389 12 @author Yufan Zhong, University of Leeds and SWJTU
ZhongYufan 16:e3ecfcd2a389 13 @date May 2020
ZhongYufan 1:9c7bb3db32bc 14 */
ZhongYufan 16:e3ecfcd2a389 15
ZhongYufan 16:e3ecfcd2a389 16
ZhongYufan 1:9c7bb3db32bc 17 class Claw
ZhongYufan 1:9c7bb3db32bc 18 {
ZhongYufan 1:9c7bb3db32bc 19
ZhongYufan 1:9c7bb3db32bc 20 public:
ZhongYufan 16:e3ecfcd2a389 21 /** Constructor */
ZhongYufan 1:9c7bb3db32bc 22 Claw();
ZhongYufan 18:d4fccdf8d90e 23
ZhongYufan 16:e3ecfcd2a389 24 /** Destructor */
ZhongYufan 1:9c7bb3db32bc 25 ~Claw();
ZhongYufan 18:d4fccdf8d90e 26
ZhongYufan 16:e3ecfcd2a389 27 /** Initialise the claw
ZhongYufan 16:e3ecfcd2a389 28 * @param winch_width - The width of the winch
ZhongYufan 16:e3ecfcd2a389 29 */
ZhongYufan 1:9c7bb3db32bc 30 void init(int winch_width);
ZhongYufan 18:d4fccdf8d90e 31
ZhongYufan 16:e3ecfcd2a389 32 /** Draw the claw
ZhongYufan 16:e3ecfcd2a389 33 * @param lcd - N5110 library
ZhongYufan 16:e3ecfcd2a389 34 */
ZhongYufan 1:9c7bb3db32bc 35 void draw(N5110 &lcd);
ZhongYufan 18:d4fccdf8d90e 36
ZhongYufan 16:e3ecfcd2a389 37 /** Update the data
ZhongYufan 16:e3ecfcd2a389 38 * @param d - the direction of the joystick
ZhongYufan 16:e3ecfcd2a389 39 * @param mag - the magnitude of the joystick
ZhongYufan 16:e3ecfcd2a389 40 * @param winch_pos - the position of the winch
ZhongYufan 16:e3ecfcd2a389 41 */
ZhongYufan 8:c5969685cf02 42 void update(Direction d,float mag,Vector2D winch_pos);
ZhongYufan 18:d4fccdf8d90e 43
ZhongYufan 16:e3ecfcd2a389 44 /** Add the current score
ZhongYufan 16:e3ecfcd2a389 45 */
ZhongYufan 1:9c7bb3db32bc 46 void add_now_score();
ZhongYufan 18:d4fccdf8d90e 47
ZhongYufan 16:e3ecfcd2a389 48 /** Get the current score
ZhongYufan 18:d4fccdf8d90e 49 * @return the current score
ZhongYufan 16:e3ecfcd2a389 50 */
ZhongYufan 1:9c7bb3db32bc 51 int get_now_score();
ZhongYufan 18:d4fccdf8d90e 52
ZhongYufan 16:e3ecfcd2a389 53 /** Set the velocity of claw
ZhongYufan 16:e3ecfcd2a389 54 * @param v - the velocity of the claw
ZhongYufan 16:e3ecfcd2a389 55 */
ZhongYufan 8:c5969685cf02 56 void set_velocity(float v);
ZhongYufan 18:d4fccdf8d90e 57
ZhongYufan 16:e3ecfcd2a389 58 /** Get the velocity
ZhongYufan 18:d4fccdf8d90e 59 * @return the claw velocity
ZhongYufan 16:e3ecfcd2a389 60 */
ZhongYufan 8:c5969685cf02 61 float get_velocity();
ZhongYufan 18:d4fccdf8d90e 62
ZhongYufan 16:e3ecfcd2a389 63 /** Get the position of the claw
ZhongYufan 18:d4fccdf8d90e 64 * @return the position of the claw.
ZhongYufan 16:e3ecfcd2a389 65 */
ZhongYufan 1:9c7bb3db32bc 66 Vector2D get_pos();
ZhongYufan 18:d4fccdf8d90e 67
ZhongYufan 16:e3ecfcd2a389 68 /** Set position of the claw
ZhongYufan 16:e3ecfcd2a389 69 * @param p - position of the claw
ZhongYufan 16:e3ecfcd2a389 70 */
ZhongYufan 1:9c7bb3db32bc 71 void set_pos(Vector2D p);
ZhongYufan 1:9c7bb3db32bc 72
ZhongYufan 1:9c7bb3db32bc 73
ZhongYufan 1:9c7bb3db32bc 74
ZhongYufan 1:9c7bb3db32bc 75 private:
ZhongYufan 1:9c7bb3db32bc 76 int _winch_width;
ZhongYufan 1:9c7bb3db32bc 77 int _x0;
ZhongYufan 1:9c7bb3db32bc 78 int _y0;
ZhongYufan 1:9c7bb3db32bc 79 int _x1;
ZhongYufan 1:9c7bb3db32bc 80 int _y1;
ZhongYufan 8:c5969685cf02 81 float _velocity_y;
ZhongYufan 1:9c7bb3db32bc 82 int _now_score;
ZhongYufan 1:9c7bb3db32bc 83 int _speed_x;
ZhongYufan 1:9c7bb3db32bc 84
ZhongYufan 1:9c7bb3db32bc 85 };
ZhongYufan 1:9c7bb3db32bc 86 #endif