Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
AI_Player.h
Go to the documentation of this file.
1#pragma once
2
3#include "ObjectComponent.h"
5#include <SDL3/SDL.h>
6#include <mutex>
7
8// AI_Player: component that listens to input events (keyboard / joystick)
9// and moves its owner GameObject in the four cardinal directions.
10class AI_Player : public AIComponent
11{
12public:
13 static bool FactoryRegistered;
14 static ObjectComponent* Create(void);
15
16 explicit AI_Player();
17 virtual void Initialize() override;
18 virtual ~AI_Player() override;
19
20 virtual void SetOwner(Object* _owner) override;
21
22 virtual void RenderDebug();
23
24 // AI properties participate in the AI stage (AIProperty already does this)
25 virtual void Process() override;
26 virtual void OnEvent(const Message& msg) override;
27
28private:
29 SDL_Color m_debugcolor = { 0, 255, 0, 255 };
30
31 float m_speed = 250.0f; // for tests to be removed
32
33 // input state
34 float m_axisX = 0.0f;
35 float m_axisY = 0.0f;
36 bool m_keyUp = false;
37 bool m_keyDown = false;
38 bool m_keyLeft = false;
39 bool m_keyRight = false;
40
41 float m_deadzone = 0.2f;
42 std::mutex m_mutex;
43};
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
static ObjectComponent * Create(void)
Definition AI_Player.cpp:18
bool m_keyLeft
Definition AI_Player.h:38
virtual ~AI_Player() override
Definition AI_Player.cpp:56
float m_axisX
Definition AI_Player.h:34
virtual void Process() override
Definition AI_Player.cpp:81
std::mutex m_mutex
Definition AI_Player.h:42
virtual void OnEvent(const Message &msg) override
bool m_keyRight
Definition AI_Player.h:39
bool m_keyDown
Definition AI_Player.h:37
virtual void RenderDebug()
Definition AI_Player.cpp:68
float m_deadzone
Definition AI_Player.h:41
static bool FactoryRegistered
Definition AI_Player.h:13
bool m_keyUp
Definition AI_Player.h:36
float m_speed
Definition AI_Player.h:31
float m_axisY
Definition AI_Player.h:35
virtual void SetOwner(Object *_owner) override
Definition AI_Player.cpp:63
virtual void Initialize() override
Definition AI_Player.cpp:38
SDL_Color m_debugcolor
Definition AI_Player.h:29