Estava fazendo um projeto java swing e defini um gameloop com o metodo paintComponente(com atualização de 120 hz), criei uma classe de inimigos chamada Enimes que possui um metodo chamado draw que recebe os Graphics do paintComponent
Logo após isso coloquei um método para atualiza a animação através de um Timer com delay de 1 segundo para cada animação, todavia existe um problema: A animação leva um segundo apenas para iniciar, depois vai mais rápida que um segundo. Se alguem puder ajudar me sentiria grato.
@Override // Esse método draw é de uma superclass q criei
public void draw(Graphics g) {
// startMovementTimer();
g.drawImage(pegaImagem(), super.x, super.y, super.UNITY, super.UNITY, null);
if (yPos <= 11) {
for (int ys = 0; ys < 11; ys++) {
Timer timer = new Timer(1000, (ActionListener) -> { // Ajuste o intervalo de tempo aqui (800 milissegundos)
// Atualize a posição dos inimigos para uma posição diferente
yPos++; // Incrementa a posição y para mover o inimigo para baixo
setLocal(objeto[xPos][yPos].x, objeto[xPos][yPos].y);
});
timer.setRepeats(false);
timer.setInitialDelay(ys * 10000); // Define um atraso inicial para cada timer
timer.start();
}
}