我有一个线程正在尝试在 Java 中运行,用于我正在制作的游戏。线程基本上休眠了一会儿,更新对象,然后调用 repaint()。看起来它应该很好用,它看起来像我在互联网上找到的代码,但它不起作用。
代码在这里:
@Override
public void run() {
int sleep = 500;
Dimension dim = getSize();
while(true){
try {
Thread.sleep(sleep);
System.out.println("Sleeping!");
} catch (InterruptedException e) {
System.out.println("interrupted");
}
for(int i = 0 ; i < poop.size() ; i++){
poop.get(i).update(dim.width, dim.height);
System.out.println("Y is: "+poop.get(i).getYCoord()+" Step is: "+poop.get(i).getYStep());
}
repaint();
}
}
当我将 try catch 块放入 for 循环时出现问题,调用正常,System.out 也打印 Y 坐标,但更新不再起作用。任何想法都会很棒。如果您需要更多代码,请告诉我,我也会将更新代码放在这里。也像对待线程的初学者一样对待我,因为我或多或少是我使用的摇摆库或多或少的初学者。
这是更新()代码:
@Override public void update(int screenWidth, int screenHeight)
{
xCoord += xStep;
if (xCoord > screenWidth) {
xCoord = 0;
} else if (xCoord < 0) {
xCoord = screenWidth;
}
yCoord += yStep;
if (yCoord > screenHeight) {
yCoord = 0;
} else if (yCoord < 0) {
yCoord = screenHeight;
}
}