gpt4 book ai didi

java - Swing 动画暂停和恢复

转载 作者:行者123 更新时间:2023-11-29 03:20:06 25 4
gpt4 key购买 nike

我想为我的游戏添加暂停/恢复的可能性。不幸的是,我的解决方案只会暂停游戏,但不会恢复游戏(当我单击恢复按钮时没有任何反应 - 图像静止)。我还尝试在 thread 上调用 wait/notify 方法,但它也没有用 - 我在线程 "AWT-EventQueue-0"java.lang.IllegalMonitorStateException 中得到了 Exception .暂停/恢复的最佳解决方案是什么?



游戏循环



public void run() {
init();

long startTime;
long reTime;
long waitTime;

while (running) {
startTime = System.nanoTime();
int CarPosX = car.zwrocPolozenieX();
int CarPosY = car.zwrocPolozenieY();
update(b, CarPosX, CarPosY);
render(b);
//draw();
repaint();


if(b<4390) {
b=b+szybkoscMapy;
}

reTime = System.nanoTime() - startTime;
waitTime = targetTime - reTime/100000000;
try {
Thread.sleep(waitTime);
}
catch(Exception e) {

}
}
}

public void init() {
if(thread == null) {
thread = new Thread(this);
thread.start();
}
b=0;
running = true;
image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
g = (Graphics2D) image.getGraphics();


map = new Map(levelNumber);
car = new Car(map);
car.setxpos(338);
car.setypos(150);

}

听众

    pause_button.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
bp.running = false;
}
});

resume_button.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
bp.running = true;
}
});

最佳答案

使用javax.swing.Timer调整动画的节奏。检查调用计时器的 start()stop() 方法的典型控件 here .这fleet simulation ,它使用了这样一个 Timer,如果有兴趣也可以。

关于java - Swing 动画暂停和恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24225305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com