Browse Source

Tween level selection screen

master
C. J. Howard 6 years ago
parent
commit
fa09653171
4 changed files with 12 additions and 7 deletions
  1. +1
    -1
      data
  2. +7
    -5
      src/application.cpp
  3. +3
    -0
      src/configuration.hpp.in
  4. +1
    -1
      src/states/level-select-state.cpp

+ 1
- 1
data

@ -1 +1 @@
Subproject commit 698ccda0e290629d871cdc92eb701789ac7d0f9c
Subproject commit 3335c35bc91dedb10a91f1528913354a7b7657e7

+ 7
- 5
src/application.cpp View File

@ -1587,7 +1587,7 @@ void Application::selectLevel(std::size_t index)
// Perform tweening // Perform tweening
for (int i = 0; i < 5; ++i) for (int i = 0; i < 5; ++i)
{ {
levelPlaceholderModelInstances[i].setTranslation(Vector3(4.0f, 0.0f, 0.0f) * static_cast<float>(previewLevelIndices[i]));
levelPlaceholderModelInstances[i].setTranslation(Vector3(ANTKEEPER_LEVEL_SPACING, 0.0f, 0.0f) * static_cast<float>(previewLevelIndices[i]));
} }
} }
@ -1598,10 +1598,11 @@ void Application::selectNextLevel()
selectLevel(currentLevelIndex + 1); selectLevel(currentLevelIndex + 1);
// Setup camera tween // Setup camera tween
Vector3 difference = Vector3(ANTKEEPER_LEVEL_SPACING * currentLevelIndex, camera.getTranslation().y, camera.getTranslation().z) - camera.getTranslation();
cameraTranslationTween->setTime(0.0f); cameraTranslationTween->setTime(0.0f);
cameraTranslationTween->setDuration(0.125f);
cameraTranslationTween->setDuration(0.5f);
cameraTranslationTween->setStartValue(camera.getTranslation()); cameraTranslationTween->setStartValue(camera.getTranslation());
cameraTranslationTween->setDeltaValue(Vector3(4.0f, 0.0f, 0.0f));
cameraTranslationTween->setDeltaValue(difference);
cameraTranslationTween->setUpdateCallback(std::bind(&SceneObject::setTranslation, &camera, std::placeholders::_1)); cameraTranslationTween->setUpdateCallback(std::bind(&SceneObject::setTranslation, &camera, std::placeholders::_1));
cameraTranslationTween->start(); cameraTranslationTween->start();
} }
@ -1614,10 +1615,11 @@ void Application::selectPreviousLevel()
selectLevel(currentLevelIndex - 1); selectLevel(currentLevelIndex - 1);
// Setup camera tween // Setup camera tween
Vector3 difference = Vector3(ANTKEEPER_LEVEL_SPACING * currentLevelIndex, camera.getTranslation().y, camera.getTranslation().z) - camera.getTranslation();
cameraTranslationTween->setTime(0.0f); cameraTranslationTween->setTime(0.0f);
cameraTranslationTween->setDuration(0.125f);
cameraTranslationTween->setDuration(0.5f);
cameraTranslationTween->setStartValue(camera.getTranslation()); cameraTranslationTween->setStartValue(camera.getTranslation());
cameraTranslationTween->setDeltaValue(Vector3(-4.0f, 0.0f, 0.0f));
cameraTranslationTween->setDeltaValue(difference);
cameraTranslationTween->setUpdateCallback(std::bind(&SceneObject::setTranslation, &camera, std::placeholders::_1)); cameraTranslationTween->setUpdateCallback(std::bind(&SceneObject::setTranslation, &camera, std::placeholders::_1));
cameraTranslationTween->start(); cameraTranslationTween->start();
} }

+ 3
- 0
src/configuration.hpp.in View File

@ -31,4 +31,7 @@ const float ANTKEEPER_TERRAIN_WIDTH = 50.0f;
const float ANTKEEPER_TERRAIN_BASE_HEIGHT = 35.7f; const float ANTKEEPER_TERRAIN_BASE_HEIGHT = 35.7f;
const float ANTKEEPER_TERRAIN_DEPTH = 50.0f; const float ANTKEEPER_TERRAIN_DEPTH = 50.0f;
// Level selection
const float ANTKEEPER_LEVEL_SPACING = 4.5f;
#endif // CONFIGURATION_HPP #endif // CONFIGURATION_HPP

+ 1
- 1
src/states/level-select-state.cpp View File

@ -34,7 +34,7 @@ void LevelSelectState::enter()
ModelInstance* instance = &application->levelPlaceholderModelInstances[i]; ModelInstance* instance = &application->levelPlaceholderModelInstances[i];
application->defaultLayer->addObject(instance); application->defaultLayer->addObject(instance);
} }
application->camera.lookAt(Vector3(0, 10, 20), Vector3(0, 1, 0), Vector3(0, 1, 0));
application->camera.lookAt(Vector3(0, 8, 12), Vector3(0, 1, 0), Vector3(0, 1, 0));
application->selectLevel(0); application->selectLevel(0);

Loading…
Cancel
Save