-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSplashMessage.cpp
More file actions
29 lines (27 loc) · 869 Bytes
/
SplashMessage.cpp
File metadata and controls
29 lines (27 loc) · 869 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "SplashMessage.hpp"
#include <iostream>
auto easing = [](float time, float start, float change, float duration){
return change*time/duration + start;
};
SplashMessage::SplashMessage(engine::Scene* scene): SpriteNode(scene), m_scaleTime(0) {
}
SplashMessage::~SplashMessage() {
}
void SplashMessage::OnDraw(sf::RenderTarget& target, sf::RenderStates states, float delta){
const float fullCycle = 1;
m_scaleTime+=delta;
if (m_scaleTime > fullCycle) {
m_scaleTime = 0;
m_scaleBack = !m_scaleBack;
}
float scale = easing(m_scaleBack?std::max(0.0f, fullCycle-m_scaleTime):m_scaleTime, 0.7f, 0.3f, fullCycle);
SetSize(m_originalSize*scale);
engine::SpriteNode::OnDraw(target, states, delta);
}
bool SplashMessage::initialize(Json::Value& root){
if (!engine::SpriteNode::initialize(root)){
return false;
}
m_originalSize = m_size;
return true;
}