void TileMap::update(float dt_sec) { // handle tilemap fading if (m_current_alpha != m_alpha) { m_remaining_fade_time = std::max(0.0f, m_remaining_fade_time - dt_sec); if (m_remaining_fade_time == 0.0f) { m_current_alpha = m_alpha; } else { float_channel(m_alpha, m_current_alpha, m_remaining_fade_time, dt_sec); } update_effective_solid (); } // handle tint fading if (m_current_tint.red != m_tint.red || m_current_tint.green != m_tint.green || m_current_tint.blue != m_tint.blue || m_current_tint.alpha != m_tint.alpha) { m_remaining_tint_fade_time = std::max(0.0f, m_remaining_tint_fade_time - dt_sec); if (m_remaining_tint_fade_time == 0.0f) { m_current_tint = m_tint; } else { float_channel(m_tint.red , m_current_tint.red , m_remaining_tint_fade_time, dt_sec); float_channel(m_tint.green, m_current_tint.green, m_remaining_tint_fade_time, dt_sec); float_channel(m_tint.blue , m_current_tint.blue , m_remaining_tint_fade_time, dt_sec); float_channel(m_tint.alpha, m_current_tint.alpha, m_remaining_tint_fade_time, dt_sec); } } m_movement = Vector(0,0); // if we have a path to follow, follow it if (get_walker()) { get_walker()->update(dt_sec); Vector v = get_walker()->get_pos(); if (get_path() && get_path()->is_valid()) { m_movement = v - get_offset(); set_offset(v); } else { set_offset(Vector(0, 0)); } } }
void TileMap::update(float elapsed_time) { // handle tilemap fading if (current_alpha != alpha) { remaining_fade_time = std::max(0.0f, remaining_fade_time - elapsed_time); if (remaining_fade_time == 0.0f) { current_alpha = alpha; } else { float_channel(alpha, current_alpha, remaining_fade_time, elapsed_time); } update_effective_solid (); } // handle tint fading if (current_tint.red != tint.red || current_tint.green != tint.green || current_tint.blue != tint.blue || current_tint.alpha != tint.alpha) { remaining_tint_fade_time = std::max(0.0f, remaining_tint_fade_time - elapsed_time); if (remaining_tint_fade_time == 0.0f) { current_tint = tint; } else { float_channel(tint.red , current_tint.red , remaining_tint_fade_time, elapsed_time); float_channel(tint.green, current_tint.green, remaining_tint_fade_time, elapsed_time); float_channel(tint.blue , current_tint.blue , remaining_tint_fade_time, elapsed_time); float_channel(tint.alpha, current_tint.alpha, remaining_tint_fade_time, elapsed_time); } } movement = Vector(0,0); // if we have a path to follow, follow it if (walker.get()) { Vector v = walker->advance(elapsed_time); movement = v - get_offset(); set_offset(v); } }