R-Type
R-Type project
PlayerController.hpp
1 #pragma once
2 
3 #include "KapEngine.hpp"
4 #include "KapEngineDebug.hpp"
5 #include "KapEngineUi.hpp"
6 #include "KapMirror/KapMirror.hpp"
7 
8 #include "LobbyMenuManager.hpp"
9 
10 #include "GameMenuManager.hpp"
11 
12 namespace RType {
14  private:
15  bool isLocalAuthority = false;
16 
18  KapEngine::Tools::Vector3 posToMove;
19  KapEngine::Tools::Vector2 inputToMove;
20  bool isMoving = false;
21 
22  long long lastRefreshTime = 0;
23  long long lastPingTime = 0;
24 
25  std::shared_ptr<GameMenuManager> menuManager;
26  std::shared_ptr<LobbyMenuManager> lobbyManager;
27 
28  KapEngine::Time::EClock clockMissile;
29 
30  KapEngine::Events::Key::EKey upKey = KapEngine::Events::Key::UP;
31  KapEngine::Events::Key::EKey downKey = KapEngine::Events::Key::DOWN;
32  KapEngine::Events::Key::EKey leftKey = KapEngine::Events::Key::LEFT;
33  KapEngine::Events::Key::EKey rightKey = KapEngine::Events::Key::RIGHT;
34  KapEngine::Events::Key::EKey shootKey = KapEngine::Events::Key::SPACE;
35  KapEngine::Events::Key::EKey debugKey = KapEngine::Events::Key::F3;
36 
37  std::vector<std::shared_ptr<KapEngine::GameObject>> collisions;
38 
39  int life = 100;
40  bool isDead = false;
41 
42  unsigned int connectionId;
43 
44  public:
45  explicit PlayerController(std::shared_ptr<KapEngine::GameObject> _gameObject);
46  ~PlayerController() = default;
47 
48  void setLocalAuthority(bool _isLocalAuthority);
49 
50  void onUpdate() override;
51 
52  void onStart() override;
53 
54  void onFixedUpdate() override;
55 
56  void onStartClient() override;
57 
58  void movePlayer(const KapEngine::Tools::Vector2 &input);
59 
60  void setConnectionId(unsigned int _connectionId);
61 
62  void shoot();
63 
64  void prepareShoot();
65 
66  int getLife() const;
67 
68  bool dead() const;
69 
70  void takeDamage(int damage);
71 
72  void onTriggerEnter(std::shared_ptr<KapEngine::GameObject> other) override;
73 
74  void onObjectUpdate() override;
75 
76  void serialize(KapMirror::NetworkWriter &writer) override;
77 
78  void deserialize(KapMirror::NetworkReader &reader) override;
79 
80  private:
81  void sendInput(const KapEngine::Tools::Vector2 &input);
82 
83  void playShootSound();
84 
85  void spawnBullet(const KapEngine::Tools::Vector3 &pos);
86 
87  void spawnMissile(const KapEngine::Tools::Vector3 &pos);
88 
89  void initSettings();
90 
91  void checkCollisions();
92 
93  void sendPingUpdate();
94  };
95 } // namespace RType
RType::PlayerController::deserialize
void deserialize(KapMirror::NetworkReader &reader) override
Deserialize all the data from payload into this component.
Definition: PlayerController.cpp:402
RType::PlayerController::onObjectUpdate
void onObjectUpdate() override
Called when the object is spawned or updated.
Definition: PlayerController.cpp:389
RType::PlayerController::onStart
void onStart() override
call component start
Definition: PlayerController.cpp:364
RType::PlayerController::onUpdate
void onUpdate() override
call each frame
Definition: PlayerController.cpp:16
KapEngine::Events::Key::EKey
EKey
all keys
Definition: Key.hpp:29
RType::PlayerController
Definition: PlayerController.hpp:13
KapEngine::Time::EClock
Definition: EClock.hpp:22
KapMirror::NetworkReader
Definition: NetworkReader.hpp:10
RType::PlayerController::onFixedUpdate
void onFixedUpdate() override
call eachv x ms
Definition: PlayerController.cpp:90
RType::PlayerController::serialize
void serialize(KapMirror::NetworkWriter &writer) override
Serialize all the data from this component into payload.
Definition: PlayerController.cpp:397
RType::PlayerController::onStartClient
void onStartClient() override
Like start(), but only called on client.
Definition: PlayerController.cpp:341
RType::PlayerController::onTriggerEnter
void onTriggerEnter(std::shared_ptr< KapEngine::GameObject > other) override
something enter in object
Definition: PlayerController.cpp:252
KapMirror::NetworkWriter
Definition: NetworkWriter.hpp:12
KapEngine::Tools::Vector2
Definition: Vectors.hpp:25
KapEngine::Tools::Vector3
Definition: Vectors.hpp:251
KapMirror::NetworkComponent
Definition: NetworkComponent.hpp:9