rokon中的碰撞检测

做游戏过程中发现,用rokon游戏引擎,子弹竟然可以穿越怪物身体而没有检测出来,怀疑if(bullet.intersects(freak)方法有问题,于是自己写碰撞检测的方法,写好了竟然发现了和rokon原来的碰撞检测一样的问题,于是写代码跟踪,发现rokon并非不能及时碰撞检测,而是没有及时在界面上更新,那么我采用的方法是做一些可以让能界面及时看到效果的方法:freak.setAlpha(0)先设置消失和freak.setTexture(Textures.sreak_over)显示死亡图片以及添加特效等.这样就解决子弹穿过怪物的情况.

第二个问题:精灵之间的单次碰撞会在一个非常小的时间段内检测到多次,我这边需求是碰撞只需要检测到一次就ok,比如打死一个怪物加1分,如果一个子弹打死一个怪物检测到多次碰撞就不符合逻辑了,解决办法:自己写一个精灵类继承rokon原来的精灵,里面添加一个字段来表示精灵现在的状态,public class MySprite extends Sprite { public boolean isAlive=true; 这样怪物用自己写的精灵,可以只要检测到子弹和怪物碰撞,怪物精灵就设置freak.isAlive=false,当下次再次检测碰撞时,就可以判断这个怪物是不是已经over了,需不需要加分.

个人开发经验,欢迎大家提点.

你可能感兴趣的:(游戏,Class,引擎)