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