2
0

MoveComponent.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  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 "Component.h"
  10. class MoveComponent : public Component
  11. {
  12. public:
  13. // Lower update order to update first
  14. MoveComponent(class Actor* owner, int updateOrder = 10);
  15. void Update(float deltaTime) override;
  16. float GetAngularSpeed() const { return mAngularSpeed; }
  17. float GetForwardSpeed() const { return mForwardSpeed; }
  18. float GetStrafeSpeed() const { return mStrafeSpeed; }
  19. void SetAngularSpeed(float speed) { mAngularSpeed = speed; }
  20. void SetForwardSpeed(float speed) { mForwardSpeed = speed; }
  21. void SetStrafeSpeed(float speed) { mStrafeSpeed = speed; }
  22. TypeID GetType() const override { return TMoveComponent; }
  23. void LoadProperties(const rapidjson::Value& inObj) override;
  24. void SaveProperties(rapidjson::Document::AllocatorType& alloc,
  25. rapidjson::Value& inObj) const override;
  26. protected:
  27. float mAngularSpeed;
  28. float mForwardSpeed;
  29. float mStrafeSpeed;
  30. };