public override void Update(GameTime p_gametime) { switch (State) { case EnemyState.HOLD: if (!m_startTimer.Started) { m_startTimer.Start(p_gametime); } if (m_startTimer.Update(p_gametime)) { State = EnemyState.MOVING; } break; case EnemyState.MOVING: if (Move(p_gametime)) { if (moveindex < m_moveSequence.Count) { MoveTo(m_moveSequence[moveindex], 0.1f, 2); moveindex++; } else { State = EnemyState.GONE; } } break; } BaseSprite.Update(p_gametime); }
public bool Move(GameTime gameTime) { if (!m_delayTimer.Started) { m_delayTimer.Start(gameTime); } m_delayTimer.Update(gameTime); //Não atualiza depois de terminado if (m_delayTimer.Finished) { if (!m_moveTimer.Started) { m_moveTimer.Start(gameTime); } m_moveTimer.Update(gameTime); } Posicao = m_startPos + (m_offsetPos * m_moveTimer.ElapsedTime); BoundingBox.X = (int)Posicao.X; BoundingBox.Y = (int)Posicao.Y; return(m_moveTimer.Finished); }
public void Update(GameTime p_gametime) { if (!m_frametimer.Update(p_gametime)) { return; } m_frametimer.Reset(p_gametime); /*if (((m_currentframe + 1) >= m_framecount) && !m_loop) * { * * }*/ if (((m_currentframe + 1) >= m_framecount) && m_loop) { m_currentframe = 0; } else if ((m_currentframe + 1) < m_framecount) { m_currentframe++; } }