论坛首页 移动开发技术论坛

JAVAME学习笔记(7)

浏览 1558 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2009-01-10  
Sprite非常适合移动的物体,如游戏主角、敌人等等,在游戏中,可以使用Sprite提供的碰撞检测功能来简化游戏逻辑。



使用defineCollisionRectangle()定义用于碰撞检测的Sprite的矩形区域。此指定的矩形是相对于未经变换的Sprite的左上角,该区域将用于检测碰撞。对于像素级的碰撞检测,仅仅在这个碰撞检测区内部的像素点会被检查。缺省的,Sprite的碰撞检测区定位在(0,0),并与Sprite尺度相同。碰撞检测区也可以指定为大于或小于缺省的碰撞检测区;如果大于缺省的碰撞检测区,在Sprite之外的像素在像素级的碰撞检测时被认为是透明的。



要判断两个Sprite是否碰撞,或者与其他Layer是否碰撞,可以使用collidesWith()方法。如果使用像素级检测,仅当非透明像素重叠时,碰撞才被检测到。即第一个Sprite中的非透明像素和第二个Sprite中的非透明像素重叠时,碰撞才被检测到。仅仅那些包含在Sprite的碰撞检测区内的像素会被检测。



如果不使用像素级检测,这个方法就简单地检查两个Sprite的碰撞检测区矩形是否有重合。 如果对Sprite应用了变换,会进行相应的处理。注意,只有两个Sprite都可见时,才能检测碰撞。

论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics