Я пытаюсь создать игру типа змеи, и у меня возникают проблемы с тем, что «гранулы» появляются в случайных местах с фиксированными интервалами (я хочу сделать это 10 секунд). Когда я запускаю программу после короткой задержки, которую я дал ей (1000 миллисекунд), гранулы начинают очень быстро мигать на экране в разных местах. То, что я хочу сделать, это заставить гранулы появляться по очереди в случайных местах каждые 10 секунд, а не быстро мигать. Любая помощь будет оценена по достоинству.Проблемы с задержкой таймера Java
P.S. Я никогда не делал ничего подобного, поэтому, извини, если код может показаться немного грубым. Любые советы с кодированием в целом также очень ценятся.
Редактировать: Я знаю, что это все еще некорректно, но я просто хочу знать, насколько я по крайней мере на правильном пути. Теперь «таблетка» просто сидит в верхнем правом углу рамки. Есть ли проблема сейчас с моим таймером или списком или просто вообще. Кстати, если обновление моего кода только для того, чтобы показать новые проблемы, на него нахмурилось, дайте мне знать, и я просто попрошу о помощи в разделе комментариев и остановись с изменениями.
package snake;
import java.awt.* ;
import java.awt.event.*;
import java.util.* ;
import javax.swing.*;
import javax.swing.Timer;
/**
*
* @author Carlos
*/
public class Pellet extends JPanel
{
Random randomNumber = new Random() ;
int x = 0 ;
int y = 0 ;
private Game game ;
private Timer timer ;
private final int DELAY = 100 ;
private ArrayList<Pellet> al = new ArrayList<>() ;
public Pellet(Game game)
{
this.game = game ;
}
@Override
public void paint(Graphics g)
{
super.paintComponent(g);
g.fillOval(x, y, 10, 10);
for(int i = 0 ; i < al.size() ; i++)
{
Pellet p = al.get(i) ;
p.paintComponent(g);
}
}
public void pelletTimer()
{
timer = new Timer(DELAY, new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
x = randomNumber.nextInt(game.getWidth()) ;
y = randomNumber.nextInt(game.getHeight()) ;
Pellet p = new Pellet(game) ;
al.add(p) ;
repaint() ;
}
}) ;
timer.start();
}
}
Я исправил его! Он работает так, как предполагалось сейчас, и я хочу поблагодарить вас за это судно на воздушной подушке, полное из-за угрей, спасибо за вашу помощь! – Saliva
@ Saliva: рад, что у вас все работает! –