java写的坦克大战游戏,就是我自己的坦克被打死后,该怎么处理我的坦克对象?虽然我用一个判断坦克是否被

中的函数来决定是不是重绘我的坦克,但是,我的坦克在被击中后,虽然在面板上消失了(没有重绘),但是他还在原来地方,只是看不到,被击中后还会出现爆炸效果。
当我在判断坦克被击中后,把我的tank设为null,又会提示空指针异常。。。
请高手给小弟指点一下。。。

你检查一下,被击中后tank对象是否还在使用,如果不使用可以置null,我觉得是你程序中tank对象还在使用的原因,不想报null指针,可以draw的时候先判断tank!=null 才进行draw,或者追问

我觉得你说得很对,只是加了还是会提示空指针异常

追答

你判断坦克是否被击中,这个判断是在线程中循环判断的,因为你就只有一个tank对象,所以判断时候,每次都会读取这个对象,你置null之后,tank没有了,再次调用,肯定会产生一个null异常。。。。上面是猜测的,不知道你是不是这样做的

追问

就是这样

追答

那就好办了,直接加一个非null判断就可以了,不会提示null指针了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-09
用一个线程来控制我方坦克的移动,每次移动都要repaint界面一次。
界面使用双缓冲来消除闪烁现象
用线程控制敌方坦克出现的时间
将坦克、子弹各看成一个对象
子弹可以是无限的,也可以是有限的,有限的就将子弹放入数组
将历史记录使用IO来存在本地磁盘中
敌方坦克需要有人工智能(这点是对游戏可玩度的一种指标,大概就是制定某个规则的随机数来发射子弹,这里的想法比较少)

以上。。。
你可以上网找找相应的代码或者视频
第2个回答  2011-04-08
你生成的坦克对象是放在哪里的,是放一个集合里的还是哪的,把它移除。追问

只是一个实例对象,没有放在集合里

追答

那不知道你的爆炸是怎么判断的,不清楚你的实现原理。
不过你可以在坦克上加个是否损坏的属性,这样当击中时可以判断如果损坏了就不出爆炸效果。

第3个回答  2011-04-08
你的tank不是都放在一个集合里面吗,被击中了就把该tank移除集合就可以了
相似回答