嗨,我正在做一个突破的游戏,我有一个问题,让球从球拍或砖头上反弹。
这是我的代码,用来让球从砖块上弹起,然后划桨。
private void checkForHit(){
GObject collider = getElementAt( ballX, ballspeed);
if(collider == paddle){
ballspeed = -ballspeed;
}
}
我不知道为什么它不工作,可能是一些小的东西。
更新
当我放入set if(collider.equals(paddle))
当我运行游戏时,我得到了一个java.lang.NullPointerException错误。
发布于 2013-02-06 01:48:51
这是因为您试图在对象上使用==符号。比较对象时的正常语法就像CodeChimp解释的那样:
<objectname>.equals( <otherobject> )
您必须确保您正在使用的对象(如果是您自己创建的)具有相同的方法可以使用,并将正确的字段、值等与其他对象进行比较。学习如何让对象协同工作是OOP的一个非常重要的部分。
你可能想看看关键字: instanceof。
另外,如果你只是想比较两个不同的字段值,这两个值都是你拥有的两个类中的fx整数值。您可以为这些字段值创建一个getter方法,并简单地比较这些特定值。
if ( collider.getSpecificValue() == paddle.getSpecificValue() ) { }
https://stackoverflow.com/questions/14713516
复制相似问题