| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // ----------------------------------------------------------------
- // From Game Programming in C++ by Sanjay Madhav
- // Copyright (C) 2017 Sanjay Madhav. All rights reserved.
- //
- // Released under the BSD License
- // See LICENSE in root directory for full details.
- // ----------------------------------------------------------------
- #include "InputComponent.h"
- #include "Actor.h"
- InputComponent::InputComponent(class Actor* owner)
- :MoveComponent(owner)
- ,mForwardKey(0)
- ,mBackKey(0)
- ,mClockwiseKey(0)
- ,mCounterClockwiseKey(0)
- {
-
- }
- void InputComponent::ProcessInput(const uint8_t* keyState)
- {
- // Calculate forward speed for MoveComponent
- float forwardSpeed = 0.0f;
- if (keyState[mForwardKey])
- {
- forwardSpeed += mMaxForwardSpeed;
- }
- if (keyState[mBackKey])
- {
- forwardSpeed -= mMaxForwardSpeed;
- }
- SetForwardSpeed(forwardSpeed);
- // Calculate angular speed for MoveComponent
- float angularSpeed = 0.0f;
- if (keyState[mClockwiseKey])
- {
- angularSpeed += mMaxAngularSpeed;
- }
- if (keyState[mCounterClockwiseKey])
- {
- angularSpeed -= mMaxAngularSpeed;
- }
- SetAngularSpeed(angularSpeed);
- }
|