| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // ----------------------------------------------------------------
- // 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"
- #include "InputSystem.h"
- InputComponent::InputComponent(class Actor* owner)
- :MoveComponent(owner)
- ,mForwardKey(0)
- ,mBackKey(0)
- ,mClockwiseKey(0)
- ,mCounterClockwiseKey(0)
- {
-
- }
- void InputComponent::ProcessInput(const InputState& state)
- {
- // Calculate forward speed for MoveComponent
- float forwardSpeed = 0.0f;
- if (state.Keyboard.GetKeyValue(SDL_Scancode(mForwardKey)))
- {
- forwardSpeed += mMaxForwardSpeed;
- }
- if (state.Keyboard.GetKeyValue(SDL_Scancode(mBackKey)))
- {
- forwardSpeed -= mMaxForwardSpeed;
- }
- SetForwardSpeed(forwardSpeed);
- // Calculate angular speed for MoveComponent
- float angularSpeed = 0.0f;
- if (state.Keyboard.GetKeyValue(SDL_Scancode(mClockwiseKey)))
- {
- angularSpeed += mMaxAngularSpeed;
- }
- if (state.Keyboard.GetKeyValue(SDL_Scancode(mCounterClockwiseKey)))
- {
- angularSpeed -= mMaxAngularSpeed;
- }
- SetAngularSpeed(angularSpeed);
- }
|