Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Tank_Controls_Player
- // Charles Tiemeyer, May 2025
- #ifndef _Tank_Controls_Player
- #define _Tank_Controls_Player
- #include "AzulCore.h"
- #include "Tank_Controls_Base.h"
- class Tank_State_Base;
- class Tank;
- class Tank_Controls_Player : public Tank_Controls_Base {
- public:
- Tank_Controls_Player() = delete;
- virtual ~Tank_Controls_Player() = default;
- Tank_Controls_Player(const Tank_Controls_Player&) = delete;
- Tank_Controls_Player& operator=(const Tank_Controls_Player&) = delete;
- struct INPUTS
- {
- const AZUL_KEY UP;
- const AZUL_KEY DOWN;
- const AZUL_KEY LEFT;
- const AZUL_KEY RIGHT;
- const AZUL_KEY T_LEFT;
- const AZUL_KEY T_RIGHT;
- const AZUL_KEY SHOOT;
- const AZUL_KEY SPEC;
- };
- const INPUTS inputs;
- Tank_Controls_Player(Tank* ref, INPUTS i) : Tank_Controls_Base(ref), inputs(i) {};
- // Tank Player State Machine
- const Tank_State_Base* current_state;
- virtual void Strategy_Update();
- virtual void Strategy_KeyPressed(AZUL_KEY k);
- virtual void Strategy_KeyPressedOnce(AZUL_KEY k);
- virtual void Strategy_KeyReleased(AZUL_KEY k) = 0;
- virtual void Strategy_KeyReleasedOnce(AZUL_KEY k);
- };
- #endif _Tank_Controls_Player
- // Tank_Controls_Player1
- // Charles Tiemeyer, May 2025
- #ifndef _Tank_Controls_Player1
- #define _Tank_Controls_Player1
- #include "AzulCore.h"
- #include "Tank_Controls_Base.h"
- #include "Tank_Controls_Player.h"
- class Tank;
- class Tank_Controls_Player1 : public Tank_Controls_Player {
- public:
- Tank_Controls_Player1() = default;
- virtual ~Tank_Controls_Player1() = default;
- Tank_Controls_Player1(const Tank_Controls_Player1&) = delete;
- Tank_Controls_Player1& operator=(const Tank_Controls_Player1&) = delete;
- Tank_Controls_Player1(Tank* ref) : Tank_Controls_Player(ref,
- {
- AZUL_KEY::KEY_W,
- AZUL_KEY::KEY_S,
- AZUL_KEY::KEY_A,
- AZUL_KEY::KEY_D,
- AZUL_KEY::KEY_Q,
- AZUL_KEY::KEY_E,
- AZUL_KEY::KEY_F,
- AZUL_KEY::KEY_R
- })
- { };
- };
- #endif _Tank_Controls_Player1
- // Tank_State_Accel
- // Charles Tiemeyer, May 2025
- #include "Tank_Controls_Player.h"
- #include "Tank_State_Accel.h"
- #include "Tank_State_Decel.h"
- #include "Tank_State_Idle.h"
- #include "Tank_State_Base.h"
- #include "Tank_States.h"
- #include "Tank.h"
- Tank_State_Accel::Tank_State_Accel() : Tank_State_Base("ACCEL")
- {
- }
- const Tank_State_Base* Tank_State_Accel::Get__NextState(Tank* t) const
- {
- // IDLE -> ACCELERATE //
- if (t->Get__Tank_Speed() != 0)
- {
- return &Tank_States::State_Idle;
- }
- }
- void Tank_State_Accel::State_Update(Tank* t)
- {
- }
- void Tank_State_Accel::State_KeyPressed(Tank* t, const Tank_Controls_Player::INPUTS i, AZUL_KEY k)
- {
- switch (k)
- {
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
- // ISSUE DOWN HERE //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
- // Tank Rotation ( Rotate Left/Right )
- case i.UP: // ?????????
- t->Tank_Rotate_Right();
- break;
- case AZUL_KEY::KEY_J:
- t->Tank_Rotate_Left();
- break;
- // Turret Rotation ( Rotate Left/Right)
- case AZUL_KEY::KEY_U:
- t->Tank_Rotate_Right();
- break;
- case AZUL_KEY::KEY_O:
- t->Turret_Rotate_Left();
- break;
- // Shoot Bullet
- case AZUL_KEY::KEY_ENTER:
- t->ShootBullet();
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement