TitleState.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #include "TitleState.hpp"
  2. #include <TweenEngine/Tween.h>
  3. #include <cpp3ds/Window/Window.hpp>
  4. #include <cpp3ds/System/I18n.hpp>
  5. #include <cpp3ds/System/Service.hpp>
  6. #include "../Config.hpp"
  7. using namespace TweenEngine;
  8. using namespace util3ds;
  9. namespace FreeShop {
  10. TitleState::TitleState(StateStack& stack, Context& context, StateCallback callback)
  11. : State(stack, context, callback)
  12. {
  13. m_textVersion.setString(FREESHOP_VERSION);
  14. m_textVersion.setCharacterSize(12);
  15. m_textVersion.setFillColor(cpp3ds::Color::White);
  16. m_textVersion.setOutlineColor(cpp3ds::Color(0, 0, 0, 100));
  17. m_textVersion.setOutlineThickness(1.f);
  18. m_textVersion.setPosition(318.f - m_textVersion.getLocalBounds().width, 222.f);
  19. m_textFree.setString("fre");
  20. m_textFree.setFillColor(cpp3ds::Color(255, 255, 255, 0));
  21. m_textFree.setCharacterSize(75);
  22. m_textFree.setPosition(23, 64);
  23. m_textFree.setStyle(cpp3ds::Text::Bold);
  24. m_textureEshop.loadFromFile("images/eshop.png");
  25. m_spriteEshop.setTexture(m_textureEshop, true);
  26. m_spriteEshop.setColor(cpp3ds::Color(0xf4, 0x6c, 0x26, 0x00));
  27. m_spriteEshop.setPosition(390.f - m_spriteEshop.getLocalBounds().width, 40.f);
  28. m_textureBag.loadFromFile("images/bag.png");
  29. m_spriteBag.setTexture(m_textureBag, true);
  30. m_spriteBag.setColor(cpp3ds::Color(0xf4, 0x6c, 0x26, 0x00));
  31. m_spriteBag.setPosition(50.f, 50.f);
  32. m_spriteBag.setScale(0.4f, 0.4f);
  33. // Tween the bag
  34. Tween::to(m_spriteBag, TweenSprite::COLOR_ALPHA, 0.5f)
  35. .target(255.f)
  36. .delay(1.f)
  37. .start(m_manager);
  38. Tween::to(m_spriteBag, TweenSprite::POSITION_XY, 0.5f)
  39. .target(10.f, 30.f)
  40. .delay(1.f)
  41. .start(m_manager);
  42. Tween::to(m_spriteBag, TweenSprite::SCALE_XY, 0.5f)
  43. .target(1.f, 1.f)
  44. .delay(1.f)
  45. .start(m_manager);
  46. Tween::to(m_spriteBag, TweenSprite::COLOR_RGB, 1.f)
  47. .target(0, 0, 0)
  48. .delay(3.5f)
  49. .start(m_manager);
  50. // Tween the "fre" text
  51. Tween::to(m_textFree, TweenSprite::COLOR_ALPHA, 1.f)
  52. .target(255.f)
  53. .delay(3.5f)
  54. .start(m_manager);
  55. // Tween the logo after the bag
  56. Tween::to(m_spriteEshop, TweenSprite::POSITION_Y, 1.f)
  57. .targetRelative(30.f)
  58. .delay(1.5f)
  59. .start(m_manager);
  60. Tween::to(m_spriteEshop, TweenSprite::COLOR_ALPHA, 1.f)
  61. .target(255)
  62. .delay(1.5f)
  63. .start(m_manager);
  64. Tween::to(m_spriteEshop, TweenSprite::COLOR_RGB, 1.f)
  65. .target(0, 0, 0)
  66. .delay(3.5f)
  67. .start(m_manager);
  68. }
  69. void TitleState::renderTopScreen(cpp3ds::Window& window)
  70. {
  71. window.draw(m_spriteEshop);
  72. window.draw(m_spriteBag);
  73. window.draw(m_textFree);
  74. }
  75. void TitleState::renderBottomScreen(cpp3ds::Window& window)
  76. {
  77. window.draw(m_textVersion);
  78. }
  79. bool TitleState::update(float delta)
  80. {
  81. m_manager.update(delta);
  82. return true;
  83. }
  84. bool TitleState::processEvent(const cpp3ds::Event& event)
  85. {
  86. return true;
  87. }
  88. } // namespace FreeShop