TazGraph Project v0.1.0
Loading...
Searching...
No Matches
KeyboardControllerComponent.h
1#pragma once
2
3
4#include "../../../Components.h"
5
6#if defined(_WIN32) || defined(_WIN64)
7 #include <Windows.h>
8 #include <MMSystem.h>
9 #pragma comment(lib, "winmm.lib") // Link to Windows multimedia library
10#elif defined(__linux__) || defined(__unix__)
11 #include <unistd.h> // Common Unix/Linux header
12#endif
13
14#include "../../../../InputManager/InputManager.h"
15
16constexpr float walkingSpeed = 3.5f, runningSpeed = 8.5f, jumpingSpeed = 3.0f;
17
18
20{
21public: //TODO: maybe have variables as private
22 InputManager* _inputManager = nullptr;
23
24 TransformComponent* transform = nullptr;
25 AnimatorComponent* animator = nullptr;
26 RigidBodyComponent* rigidbody = nullptr;
27 SpriteComponent* sprite = nullptr;
28
29 SDL_KeyCode walkUpKey = SDLK_UNKNOWN, walkLeftKey = SDLK_UNKNOWN, walkRightKey = SDLK_UNKNOWN, walkDownKey = SDLK_UNKNOWN;
30
31
33 {
34
35 }
36
38 InputManager* inputManager,
39 SDL_KeyCode walkUpKey,
40 SDL_KeyCode walkLeftKey,
41 SDL_KeyCode walkRightKey,
42 SDL_KeyCode walkDownKey
43 )
44 : _inputManager(inputManager),
45 walkUpKey(walkUpKey),
46 walkLeftKey(walkLeftKey),
47 walkRightKey(walkRightKey),
48 walkDownKey(walkDownKey)
49 {
50
51 }
52
54 {
55
56 }
57
58 void init() override
59 {
60 transform = &entity->GetComponent<TransformComponent>();
61 animator = &entity->GetComponent<AnimatorComponent>();
62 sprite = &entity->GetComponent<SpriteComponent>();
63 }
64
65 void update(float deltaTime) override
66 {
67
68 if (_inputManager->isKeyDown(walkLeftKey)) {
69 transform->setVelocity_X(-runningSpeed);
70 }
71 if (_inputManager->isKeyDown(walkRightKey)) {
72 transform->setVelocity_X(runningSpeed);
73 }
74 if (!_inputManager->isKeyDown(walkRightKey) && !_inputManager->isKeyDown(walkLeftKey)) {
75 transform->setVelocity_X(0);
76 }
77 if (_inputManager->isKeyDown(walkUpKey)) {
78 transform->setVelocity_Y(-runningSpeed);
79 }
80 if (_inputManager->isKeyDown(walkDownKey)) {
81 transform->setVelocity_Y(runningSpeed);
82 }
83 if (!_inputManager->isKeyDown(walkUpKey) && !_inputManager->isKeyDown(walkDownKey)) {
84 transform->setVelocity_Y(0);
85 }
86 }
87
88 std::string GetComponentName() override {
89 return "KeyboardControllerComponent";
90 }
91};
Definition AnimatorComponent.h:13
Definition GECS.h:123
Definition InputManager.h:10
moving animation
Definition KeyboardControllerComponent.h:20
Definition RigidBodyComponent.h:5
Definition SpriteComponent.h:17
Definition TransformComponent.h:6