gpt4 book ai didi

java - Thread.sleep() 不工作

转载 作者:行者123 更新时间:2023-12-02 05:00:14 25 4
gpt4 key购买 nike

在尝试在 java 中进行游戏角色跳跃时,我尝试使用 Thread.sleep() 使图像向上移动 5 个像素,然后等待,例如100 毫秒,然后再次向上移动 5 个像素,依此类推。

相反,当图像需要进行 5 个步骤,每个步骤增加 5 个像素,并且每次等待 100 毫秒时,它会等待 500 毫秒并向上移动 25 个像素。

我无法解释这种行为,而且网上似乎也没有答案。请注意,我的程序不包含线程。这是我的代码:

ImageIcon poppetje1         = new ImageIcon("img/poppetje1.jpg");
JLabel poppetje2 = new JLabel(poppetje1);

...

public void jump() {
try {
poppetje2.setBounds(poppetje2.getX(), (poppetje2.getY()-5), poppetje1.getIconWidth(), poppetje1.getIconHeight());
Thread.sleep(100);
} catch(InterruptedException e) {
e.printStackTrace();
}
}

...

public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_W) {
for(int c = 0; c < 10; c++) {
jump();
repaint();
}
}
}

我希望我的代码就足够了,如果我应该上传完整的代码,请询问。

预先感谢您的宝贵时间。

最佳答案

setBounds 是否包含重绘/渲染步骤?如果没有,keyPressed 内的阻塞可能会阻止重绘发生,直到 sleep 全部完成并且 keyPressed 返回。

关于java - Thread.sleep() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28344856/

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