日食java_从Java游戏中删除对象(日食)

让我们开始吧,我有一个’handler’类,里面充满了getters和setters,并且其中包括添加和删除对象的代码,它看起来像这样:

public void addObject(GameObject object){

this.object.add(object);

}

public void removeObject(GameObject object){

this.object.remove(object);

请注意,“ GameObject”是一个类,所有对象都对该类进行扩展,

然后在此处创建一个对象,

if(mouseOver(mx, my, 840/2-100, 149, 200, 64)){

game.gameState = STATE.Game;

handler.addObject(new Player(0, 300, ID.Player,game.playerImg, game));

handler.addObject(new BasicEnemy(700, 300, ID.BasicEnemy, game.enemyImg, game));

handler.addObject(new F1Jutsu(400, 300, ID.F1Jutsu, game.f1jutsuImg, game));

}

内部参数是我要添加的对象的参数。当然,每个对象都是其自己的类。现在我想删除对象F1Jutsu(如果它的x值在游戏外部),并且该对象每秒向右移动一次(这样可以正常工作,因此我不会将其粘贴到此处,如果需要的话)

if(x > 800){

handler.removeObject(this);

}

我在“

tick”函数(在F1Jutsu类内部)中有一个类似运行函数的函数。问题是,一旦调用removeObject方法,我就会得到一个nullpointer异常,出现以下错误:

Exception in thread "Thread-2" java.lang.NullPointerException

at com.ninja.main.F1Jutsu.tick(F1Jutsu.java:24)

at com.ninja.main.Handler.tick(Handler.java:14)

at com.ninja.main.Game.tick(Game.java:110)

at com.ninja.main.Game.run(Game.java:87)

at java.lang.Thread.run(Unknown Source)

基本上,在F1Jutsu类中有一个NullPointerException(即删除null

??,但它是一个对象),在该类中被告知要删除对象,然后每个正在调用remove

object方法的位置以及每个调用place调用的位置放置了删除对象等导致错误。

我认为这个想法可能是对象的x值现在为null,这是nullpointer(?),但不确定,如果可以的话,我该如何解决?

抱歉,我的帖子很长(马铃薯?)

编辑:

F1Jutsu的第24行是:

if(x > 800){

handler.removeObject(this);

}

MRK我不确定您的意思,我在上面的代码中包括了在其中添加对象和在其中删除对象的部分。

编辑:

好的,经过大量工作,我得出的结论是,当我添加对象时,它会被添加为空图像。我必须问如何在不更改代码基础(参数)的情况下将其设置为某些内容(不为null)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值