我有这个代码,我想在java 2d游戏中启动跳转,事情是我的对象不会去任何地方,它只是停留在那里...我希望我的对象跳,因为我按下键和程序向我展示图像上下移动..我试图通过简单的repaint()方法来做到这一点 CODE ::::
public void actionPerformed(ActionEvent e) {
if(hero.jump()==1){
int jumpheight=40,j=0;
while(j<jumpheight){
hero.y--; \\changing the y position (up)..
try {
Thread.sleep(100);
} catch (InterruptedException e1) {}
repaint();
j++;
}
j=0;
hero.jump1=0;
while(j<jumpheight){
hero.y++; \\changing the y position (down)..
try {
Thread.sleep(100);
} catch (InterruptedException e1) {}
repaint();
j++;
}
}
else {
hero.move();
repaint();
}
答案 0 :(得分:0)
您需要将位置更改移动到另一个线程中。密钥处理和重绘现在在您现在的代码中的相同线程中处理。当您调用 repaint()时,会调度重绘,但在事件线程再次“释放”之前不会执行重绘,但由于您有一个循环(有睡眠),它永远不会自由,而是您的重绘将在你的循环结束后(你的英雄回到原来的位置)发生。