我刚刚尝试在我的游戏中添加一些东西,如果一个玩家被子弹击中,他的健康就会下降。问题是当我检查这个时,CPU 是 100% 并且一切都太迟钝了。这是个问题。这是我正在使用的线程:
package Graphics;
import java.util.logging.Level;
import java.util.logging.Logger;
public class BulletCollision implements Runnable {
Player1 player1 = new Player1();
Player2 player2 = new Player2();
public Thread checkBulletCollision = new Thread(this);
public void checkPlayerBulletCollide() {
if (player2.getBulletX() > player1.getX() &&
player2.getBulletX() < player1.getX() - 50) {
player2.decHealth(50);
}
}
@Override
public void run() {
while(true) {
checkPlayerBulletCollide();
try {
checkBulletCollision.sleep(100);
} catch (InterruptedException ex) {
Logger.getLogger(BulletCollision.class.getName()).log(
Level.SEVERE, null, ex);
}
}
}
}
我很确定这就是问题所在。编译或运行时没有错误。如果有人可以提供帮助,那就太棒了!我只是制作这个类,所以代码并不完美。我已经尝试了很多来解决这个问题,Threads start() 方法在我的 Display 类中被调用,它只显示 JFrame。我以前在我的一个播放器中使用了 start 方法。