mirror of
https://github.com/edubart/otclient.git
synced 2025-10-15 12:04:55 +02:00
some reworks
This commit is contained in:
@@ -65,34 +65,61 @@ void Particle::update(double elapsedTime)
|
||||
}
|
||||
|
||||
updateColor();
|
||||
updateSize();
|
||||
updatePosition(elapsedTime);
|
||||
|
||||
// update size
|
||||
m_size = m_startSize + (m_finalSize - m_startSize) / m_duration * m_elapsedTime;
|
||||
m_elapsedTime += elapsedTime;
|
||||
}
|
||||
|
||||
void Particle::updatePosition(double elapsedTime)
|
||||
{
|
||||
bool mustRedraw = false;
|
||||
|
||||
// update position
|
||||
if(m_ignorePhysicsAfter < 0 || m_elapsedTime < m_ignorePhysicsAfter ) {
|
||||
// update position
|
||||
PointF delta = m_velocity * elapsedTime;
|
||||
delta.y *= -1; // painter orientate Y axis in the inverse direction
|
||||
m_position += delta;
|
||||
|
||||
PointF position = m_position + delta;
|
||||
|
||||
if(m_position != position) {
|
||||
mustRedraw = true;
|
||||
m_position += delta;
|
||||
}
|
||||
|
||||
// update acceleration
|
||||
m_velocity += m_acceleration * elapsedTime;
|
||||
}
|
||||
|
||||
m_rect.moveTo((int)m_position.x - m_size.width() / 2, (int)m_position.y - m_size.height() / 2);
|
||||
m_rect.resize(m_size);
|
||||
}
|
||||
|
||||
m_elapsedTime += elapsedTime;
|
||||
void Particle::updateSize()
|
||||
{
|
||||
bool mustRedraw = false;
|
||||
|
||||
Size size = m_startSize + (m_finalSize - m_startSize) / m_duration * m_elapsedTime;
|
||||
if(m_size != size) {
|
||||
mustRedraw = true;
|
||||
m_size = size;
|
||||
}
|
||||
|
||||
m_rect.resize(m_size);
|
||||
}
|
||||
|
||||
void Particle::updateColor()
|
||||
{
|
||||
bool mustRedraw = false;
|
||||
|
||||
if(m_elapsedTime < m_colorsStops[1]) {
|
||||
m_color.setRGBA(m_colors[0].r() + (m_colors[1].r() - m_colors[0].r()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]),
|
||||
m_colors[0].g() + (m_colors[1].g() - m_colors[0].g()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]),
|
||||
m_colors[0].b() + (m_colors[1].b() - m_colors[0].b()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]),
|
||||
m_colors[0].a() + (m_colors[1].a() - m_colors[0].a()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]));
|
||||
Color color = Color(m_colors[0].r() + (m_colors[1].r() - m_colors[0].r()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]),
|
||||
m_colors[0].g() + (m_colors[1].g() - m_colors[0].g()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]),
|
||||
m_colors[0].b() + (m_colors[1].b() - m_colors[0].b()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]),
|
||||
m_colors[0].a() + (m_colors[1].a() - m_colors[0].a()) / (m_colorsStops[1] - m_colorsStops[0]) * (m_elapsedTime - m_colorsStops[0]));
|
||||
if(m_color != color) {
|
||||
mustRedraw = true;
|
||||
m_color = color;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(m_colors.size() > 1) {
|
||||
@@ -100,7 +127,10 @@ void Particle::updateColor()
|
||||
m_colorsStops.erase(m_colorsStops.begin());
|
||||
}
|
||||
else {
|
||||
m_color = m_colors[0];
|
||||
if(m_color != m_colors[0]) {
|
||||
mustRedraw = true;
|
||||
m_color = m_colors[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -44,6 +44,8 @@ public:
|
||||
|
||||
private:
|
||||
void updateColor();
|
||||
void updatePosition(double elapsedTime);
|
||||
void updateSize();
|
||||
|
||||
Color m_color;
|
||||
std::vector<Color> m_colors;
|
||||
|
Reference in New Issue
Block a user