有一段时间我在J2ME编程。我想现在创建“超级”游戏2D。首先考虑最重要的数据:
Soldier
类的对象(在Sprite
之后继承)Bullet
级的对象(也在Sprite
之后继承)我在这里遇到了问题。就是这样:子弹击中士兵。如何将士兵的物体转移到子弹的物体(反之亦然)以减少士兵的HP。
下一个数据一览:
Soldier
类有静态字段HP
Bullet
类有静态字段hit
包含有关子弹力的数据我有条件声明,检查玩家是否与trpas碰撞 - TiledLayer。这不是没问题。问题是检查与子弹的碰撞。 collidesWith()
方法检查会与Sprite
,TiledLayer
,Layer
的一次对象发生冲突。子弹的物体将会很多。是否有这样的选项来检查与某种类型的碰撞,而不是某种类型的某些对象(不检查与bullet1,bullet2,bullet3作为队列的碰撞,以及所有类型的Bullet
)?
我的问题。
1.如果发生碰撞,我如何将Bullet的数据转移给Soldier?
2.我如何检测与Bullet
类型的碰撞,而不是对象此类型x子弹号?
答案 0 :(得分:0)
Object
类有一个getClass()方法,它返回给定Object为实例的类的名称。这不是最好的编程实践,但它有效。如果您需要将Bullet
数据“转移”到Soldier
,请添加一个接受子弹/士兵的碰撞方法:soldierCollisionEvent(Bullet b)
,甚至是collision(Soldier s, Bullet b)
。或者,您可以使用object-oriented programming让对象共享数据和事件,而不必担心(太多)类类型。
答案 1 :(得分:0)