我目前正在学习 java 并尝试制作不同的功能和系统。现在我正在尝试制作一个非常简单的粒子系统,但是我遇到了问题。
public void eDelay()
{
try
{
Thread.sleep(17);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
public void engine()
{
int i = 0;
while (i < particles.size())
{
Particle a = (Particle) particles.get(i);
eDelay();
a.move();
i = i + 1;
}
}
public void actionPerformed(ActionEvent e)
{
engine();
repaint();
}
这是我的代码中粒子应该移动的一部分。它工作正常,它们确实移动了,但我希望它们一个接一个地移动,延迟 (17)。但是,它们是同时移动的,而不是一个接一个。(particles) 是一个包含 50 个元素的数组列表,每个元素包含一个粒子的位置。(a.move()) 只是粒子向上移动的一种移动方法。
不要担心其余的代码,问题出在这部分。
图形、粒子的定位、粒子的运动和其他东西都可以正常工作。