Eu tenho a função de pausa implementada e funciona corretamente, pois escurece a tela do jogador e para de atualizar a jogabilidade.
O problema é que o GameTime continua a aumentar enquanto está pausado, então meu método que verifica gameTime versus anteriorSpawnTime antes de gerar outro inimigo fica confuso e, se o jogo for pausado por muito tempo, é perceptível que o próximo inimigo desenha muito cedo.
Aqui está o meu código para a atualização do inimigo.
private void UpdateEnemies(GameTime gameTime)
{
// Spawn a new enemy every 1.5 seconds
if (gameTime.TotalGameTime - previousSpawnTime > enemySpawnTime)
{
previousSpawnTime = gameTime.TotalGameTime;
// Add an Enemy
AddEnemy();
}
...
Eu também tenho outros métodos que dependem do gameTime. Tentei obter o tempo total de pausa e subtraí-lo do tempo total do jogo, mas não consigo fazê-lo funcionar corretamente se é assim que devo resolver isso.
Se você precisar ver outro código, me avise. Obrigado.