InputComponent.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. #include "InputComponent.h"
  9. #include "Actor.h"
  10. InputComponent::InputComponent(class Actor* owner)
  11. :MoveComponent(owner)
  12. ,mForwardKey(0)
  13. ,mBackKey(0)
  14. ,mClockwiseKey(0)
  15. ,mCounterClockwiseKey(0)
  16. {
  17. }
  18. void InputComponent::ProcessInput(const uint8_t* keyState)
  19. {
  20. // Calculate forward speed for MoveComponent
  21. float forwardSpeed = 0.0f;
  22. if (keyState[mForwardKey])
  23. {
  24. forwardSpeed += mMaxForwardSpeed;
  25. }
  26. if (keyState[mBackKey])
  27. {
  28. forwardSpeed -= mMaxForwardSpeed;
  29. }
  30. SetForwardSpeed(forwardSpeed);
  31. // Calculate angular speed for MoveComponent
  32. float angularSpeed = 0.0f;
  33. if (keyState[mClockwiseKey])
  34. {
  35. angularSpeed += mMaxAngularSpeed;
  36. }
  37. if (keyState[mCounterClockwiseKey])
  38. {
  39. angularSpeed -= mMaxAngularSpeed;
  40. }
  41. SetAngularSpeed(angularSpeed);
  42. }