1.对于位图,碰撞检测很简单。把位图载入到 BitmapData 中,用 BitmapData 的 hitTest 函数检测碰撞,关于该函数可以看 AS3 语言参考。
2.对于非位图,比如 Sprite。可以创建几个 BitmapData ,在每一帧清空 BitmapData,同时用 draw 函数把要进行碰撞检测的对象绘入 BitmapData,hitTest 检测碰撞。也就是说每一帧都要重绘 BitmapData。
这种方法碰撞检测效率不高。如果有许多物体,那每一帧进行碰撞检测的次数就会呈平方阶增长,也就是说当有100个物体,每一帧就要检测 10000 次(汗),足够让你的 FLASH 崩溃了。
对大量物体的碰撞检测必须优化算法。
3.大量物体碰撞检测
未完待续
参考资料:《AdvancED ActionScript 3.0 Animation》