Problemas com controle do tempo em games

 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.

Posta o seu código ae…Eu não tenho experiência em programação de jogos em java, mas acho que o seu problema é com a lógica.

Sugiro a leitura desse artigo do pontov: http://www.pontov.com.br/site/index.php/java/48-java2d/121-o-loop-de-animacao. Deve te ajudar a criar o loop de controle do jogo.

Os demais artigos do Ponto V também devem te ajudar com outros pontos do jogo.

Abraço.

xandelol:
acho que não há a necessidade de postar o código aqui, o meu problema é +/- o que eu especifiquei, mas obrigado.

TerraSkilll:
Obrigado pelo link, mas apesar de eu ter gostado do site e de ter me ajudado em outra coisa não me ajudou no que eu preciso.
__
Acho que se existisse um comando do tipo: for (tantos milissegundos) {…} , me ajudaria muito, alguém conhece alguma coisa parecida com isso?