Java 2d游戏中的“JUMP”

时间:2012-04-14 06:11:03

标签: java

我有这个代码,我想在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();  
    }

1 个答案:

答案 0 :(得分:0)

您需要将位置更改移动到另一个线程中。密钥处理和重绘现在在您现在的代码中的相同线程中处理。当您调用 repaint()时,会调度重绘,但在事件线程再次“释放”之前不会执行重绘,但由于您有一个循环(有睡眠),它永远不会自由,而是您的重绘将在你的循环结束后(你的英雄回到原来的位置)发生。