0

嗨,我正在做一个突破游戏,我在让球从桨或砖上反弹时遇到问题。

这是我的代码,用于使球从砖块和桨上反弹。

private void checkForHit(){
    GObject collider = getElementAt( ballX, ballspeed);

    if(collider == paddle){
        ballspeed = -ballspeed;
    }
}

我不知道为什么它不起作用,它可能是一些小东西。

更新

当我设置 if(collider.equals(paddle))

运行游戏时出现 java.lang.NullPointerException 错误。

4

1 回答 1

1

这是因为您尝试在对象上使用 == 标志。比较对象时的正常语法就像 CodeChimp 解释的那样:

<objectname>.equals( <otherobject> )

您必须确保您正在使用的对象(如果您自己制作)具有相同的使用方法,并将正确的字段值等与其他对象进行比较。学习如何让对象协同工作是 OOP 的一个非常重要的部分。

您可能想看看关键字:instanceof while your at it。

此外,如果您只是想比较两个不同的字段值,这两个类中的每一个都是 fx 整数值。您可以为这些字段值创建一个 getter 方法并简单地比较这些特定值。

if ( collider.getSpecificValue() == paddle.getSpecificValue() ) { }
于 2013-02-05T17:48:51.297 回答