InputComponent.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // ----------------------------------------------------------------
  2. // From Game Programming in C++ by Sanjay Madhav
  3. // Copyright (C) 2017 Sanjay Madhav. All rights reserved.
  4. //
  5. // Released under the BSD License
  6. // See LICENSE in root directory for full details.
  7. // ----------------------------------------------------------------
  8. #pragma once
  9. #include "MoveComponent.h"
  10. #include <cstdint>
  11. class InputComponent : public MoveComponent
  12. {
  13. public:
  14. // Lower update order to update first
  15. InputComponent(class Actor* owner);
  16. void ProcessInput(const uint8_t* keyState) override;
  17. // Getters/setters for private variables
  18. float GetMaxForward() const { return mMaxForwardSpeed; }
  19. float GetMaxAngular() const { return mMaxAngularSpeed; }
  20. int GetForwardKey() const { return mForwardKey; }
  21. int GetBackKey() const { return mBackKey; }
  22. int GetClockwiseKey() const { return mClockwiseKey; }
  23. int GetCounterClockwiseKey() const { return mCounterClockwiseKey; }
  24. void SetMaxForwardSpeed(float speed) { mMaxForwardSpeed = speed; }
  25. void SetMaxAngularSpeed(float speed) { mMaxAngularSpeed = speed; }
  26. void SetForwardKey(int key) { mForwardKey = key; }
  27. void SetBackKey(int key) { mBackKey = key; }
  28. void SetClockwiseKey(int key) { mClockwiseKey = key; }
  29. void SetCounterClockwiseKey(int key) { mCounterClockwiseKey = key; }
  30. private:
  31. // The maximum forward/angular speeds
  32. float mMaxForwardSpeed;
  33. float mMaxAngularSpeed;
  34. // Keys for forward/back movement
  35. int mForwardKey;
  36. int mBackKey;
  37. // Keys for angular movement
  38. int mClockwiseKey;
  39. int mCounterClockwiseKey;
  40. };