SplineActor.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 "SplineActor.h"
  9. #include "MeshComponent.h"
  10. #include "Game.h"
  11. #include "Renderer.h"
  12. #include "SplineCamera.h"
  13. #include "MoveComponent.h"
  14. SplineActor::SplineActor(Game* game)
  15. :Actor(game)
  16. {
  17. //MeshComponent* mc = new MeshComponent(this);
  18. //mc->SetMesh(game->GetRenderer()->GetMesh("Assets/RacingCar.gpmesh"));
  19. //SetPosition(Vector3(0.0f, 0.0f, -100.0f));
  20. mCameraComp = new SplineCamera(this);
  21. // Create a spline
  22. Spline path;
  23. path.mControlPoints.emplace_back(Vector3::Zero);
  24. for (int i = 0; i < 5; i++)
  25. {
  26. if (i % 2 == 0)
  27. {
  28. path.mControlPoints.emplace_back(Vector3(300.0f * (i + 1), 300.0f, 300.0f));
  29. }
  30. else
  31. {
  32. path.mControlPoints.emplace_back(Vector3(300.0f * (i + 1), 0.0f, 0.0f));
  33. }
  34. }
  35. mCameraComp->SetSpline(path);
  36. mCameraComp->SetPaused(false);
  37. }
  38. void SplineActor::ActorInput(const uint8_t* keys)
  39. {
  40. }
  41. void SplineActor::RestartSpline()
  42. {
  43. mCameraComp->Restart();
  44. }