Advertisement
Guest User

Untitled

a guest
May 4th, 2025
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. // Tank_Controls_Player
  2. // Charles Tiemeyer, May 2025
  3.  
  4.  
  5. #ifndef _Tank_Controls_Player
  6. #define _Tank_Controls_Player
  7.  
  8. #include "AzulCore.h"
  9. #include "Tank_Controls_Base.h"
  10. class Tank_State_Base;
  11. class Tank;
  12.  
  13.  
  14. class Tank_Controls_Player : public Tank_Controls_Base {
  15. public:
  16. Tank_Controls_Player() = delete;
  17. virtual ~Tank_Controls_Player() = default;
  18. Tank_Controls_Player(const Tank_Controls_Player&) = delete;
  19. Tank_Controls_Player& operator=(const Tank_Controls_Player&) = delete;
  20.  
  21.  
  22. struct INPUTS
  23. {
  24. const AZUL_KEY UP;
  25. const AZUL_KEY DOWN;
  26. const AZUL_KEY LEFT;
  27. const AZUL_KEY RIGHT;
  28. const AZUL_KEY T_LEFT;
  29. const AZUL_KEY T_RIGHT;
  30. const AZUL_KEY SHOOT;
  31. const AZUL_KEY SPEC;
  32. };
  33.  
  34. const INPUTS inputs;
  35.  
  36.  
  37. Tank_Controls_Player(Tank* ref, INPUTS i) : Tank_Controls_Base(ref), inputs(i) {};
  38.  
  39.  
  40. // Tank Player State Machine
  41. const Tank_State_Base* current_state;
  42.  
  43. virtual void Strategy_Update();
  44.  
  45. virtual void Strategy_KeyPressed(AZUL_KEY k);
  46. virtual void Strategy_KeyPressedOnce(AZUL_KEY k);
  47. virtual void Strategy_KeyReleased(AZUL_KEY k) = 0;
  48. virtual void Strategy_KeyReleasedOnce(AZUL_KEY k);
  49. };
  50.  
  51. #endif _Tank_Controls_Player
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. // Tank_Controls_Player1
  67. // Charles Tiemeyer, May 2025
  68.  
  69.  
  70. #ifndef _Tank_Controls_Player1
  71. #define _Tank_Controls_Player1
  72.  
  73. #include "AzulCore.h"
  74. #include "Tank_Controls_Base.h"
  75. #include "Tank_Controls_Player.h"
  76. class Tank;
  77.  
  78.  
  79. class Tank_Controls_Player1 : public Tank_Controls_Player {
  80. public:
  81. Tank_Controls_Player1() = default;
  82. virtual ~Tank_Controls_Player1() = default;
  83. Tank_Controls_Player1(const Tank_Controls_Player1&) = delete;
  84. Tank_Controls_Player1& operator=(const Tank_Controls_Player1&) = delete;
  85.  
  86. Tank_Controls_Player1(Tank* ref) : Tank_Controls_Player(ref,
  87. {
  88. AZUL_KEY::KEY_W,
  89. AZUL_KEY::KEY_S,
  90. AZUL_KEY::KEY_A,
  91. AZUL_KEY::KEY_D,
  92. AZUL_KEY::KEY_Q,
  93. AZUL_KEY::KEY_E,
  94. AZUL_KEY::KEY_F,
  95. AZUL_KEY::KEY_R
  96. })
  97. { };
  98.  
  99.  
  100. };
  101.  
  102. #endif _Tank_Controls_Player1
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. // Tank_State_Accel
  115. // Charles Tiemeyer, May 2025
  116.  
  117.  
  118. #include "Tank_Controls_Player.h"
  119. #include "Tank_State_Accel.h"
  120. #include "Tank_State_Decel.h"
  121. #include "Tank_State_Idle.h"
  122. #include "Tank_State_Base.h"
  123. #include "Tank_States.h"
  124. #include "Tank.h"
  125.  
  126.  
  127. Tank_State_Accel::Tank_State_Accel() : Tank_State_Base("ACCEL")
  128. {
  129. }
  130.  
  131.  
  132. const Tank_State_Base* Tank_State_Accel::Get__NextState(Tank* t) const
  133. {
  134. // IDLE -> ACCELERATE //
  135. if (t->Get__Tank_Speed() != 0)
  136. {
  137. return &Tank_States::State_Idle;
  138. }
  139. }
  140.  
  141.  
  142. void Tank_State_Accel::State_Update(Tank* t)
  143. {
  144.  
  145. }
  146. void Tank_State_Accel::State_KeyPressed(Tank* t, const Tank_Controls_Player::INPUTS i, AZUL_KEY k)
  147. {
  148.  
  149.  
  150. switch (k)
  151. {
  152. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
  153. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
  154. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
  155. // ISSUE DOWN HERE //
  156. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
  157. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
  158. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
  159.  
  160. // Tank Rotation ( Rotate Left/Right )
  161. case i.UP: // ?????????
  162. t->Tank_Rotate_Right();
  163. break;
  164. case AZUL_KEY::KEY_J:
  165. t->Tank_Rotate_Left();
  166. break;
  167.  
  168. // Turret Rotation ( Rotate Left/Right)
  169. case AZUL_KEY::KEY_U:
  170. t->Tank_Rotate_Right();
  171. break;
  172. case AZUL_KEY::KEY_O:
  173. t->Turret_Rotate_Left();
  174. break;
  175.  
  176. // Shoot Bullet
  177. case AZUL_KEY::KEY_ENTER:
  178. t->ShootBullet();
  179. break;
  180. }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement