我正在进行一场突破游戏,我遇到了让球从球拍或砖块上反弹的问题。
继承我的代码,让球从砖块和桨上反弹。
private void checkForHit(){
GObject collider = getElementAt( ballX, ballspeed);
if(collider == paddle){
ballspeed = -ballspeed;
}
}
我不知道为什么它不起作用,它可能很小。
更新
当我把set if(collider.equals(paddle))
时我在运行游戏时遇到java.lang.NullPointerException错误。
答案 0 :(得分:1)
这是因为你试图在对象上使用==符号。比较对象时的常规语法类似于CodeChimp解释:
<objectname>.equals( <otherobject> )
您必须确保您使用的对象(如果您自己制作)具有相同的使用方法,并将正确的字段值等与其他对象进行比较。学习如何让对象协同工作是OOP的一个非常重要的部分。
您可能想看看关键字: 的instanceof 在你的时候。
此外,如果你只想比较两个不同的字段值,这两个字段都是fx整数值。您可以为这些字段值创建一个getter方法,并简单地比较这些特定值。
if ( collider.getSpecificValue() == paddle.getSpecificValue() ) { }