跳跃不起作用Slick2D

时间:2014-03-23 17:06:50

标签: java slick2d

我有这个代码,当我按空格时,它变得奇怪了。我测试了它,当我按空格时,jump()被调用。我没有收到任何错误。

public static void update(int delta)
{
    if (!grounded && !jumping)
        y += gravity;
        if (y > 275)
        {
            grounded = true;
            jumpTime = 0;
        }
        if (jumping && jumpTime < maxJumpTime)
        {
            y -= jumpPower;
            jumpTime++;
        }
        if (jumpTime > maxJumpTime)
        {
            jumping = false;
            jumpTime = 0;
        }
        if (jumping)
        {
            grounded = false;
        }
}

public static void jump(int power)
{
    if (grounded)
    {
        jumpPower = power;
        grounded = false;
        jumping = true;
    } else
        return;
}

变量是:

x
y 
gravity (1)
jumpTime
maxJumpTime (5)
jumpPower (1).

1 个答案:

答案 0 :(得分:1)

如果没有更好地了解“变得奇怪”的含义,我会认为它与您将方法标记为静态有关。我认为当你尝试从静态上下文中访问非静态变量(x和y)时编译器会生气。跳跃和更新看起来就像你想要成为对象的个体而不是会影响所有对象的东西。

我建议给这个读一下: http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html