Olá, já programo em java há algum tempo, mas só agora resolvi tentar aprender programação de games (2d). Consegui fazer alguns sem problemas, mas atualmente eu estou fazendo um space invaders só por diversão, e me deparei com um problema, que seria o controle de tempo de duração das explosões das naves, eu até tentei pausar a thread por 30 ms deixando a imagem da explosão antes do inimigo sumir, porém, obviamente, ocorre um atraso de 30ms no jogo inteiro, que na verdade é praticamente desprezível, mas ainda sim é perceptível. Eu gostaria de saber se tem como controlar isso sem ter que mexer na thread principal(que atualiza a tela). Eu já fiz explosões em outros jogos, porém eu simplesmente fiz um loop que atualizava os frames da explosão, porém nesse caso, a explosão é apenas uma imagem que eu gostaria de deixa-la em evidencia por mais de um frame.
Outro problema que eu tive relacionado a isso, mas consegui resolver (acho que não da maneira correta), é o movimento clássico das naves inimigas do space invaders (uma "simulação" de atualização de tela lenta). A minha solução foi criar uma variável (int counter) que aumenta cada vez que a tela geral atualiza, e uma condição: if (counter < 100) { código que faz os inimigos moverem para o lado... counter = 0}. Gostaria de saber se essa é a melhor solução, porque eu desconfio que há uma maneira de fazer com que os inimigos atualizem em um timer diferente do resto do jogo, e talvez se isso fosse possível, poderia resolver o 1º problema citado no tópico.
Obrigado pela atenção.