碰撞测试是游戏的关键,所谓碰撞测试作用很大,比如游戏中人物进入某一个区域的判断、武器命中目标位置判断等,有的甚至使用碰撞效能来决定游戏性能的优劣。
但在silverlight中实现碰撞测试是比较困难的,这里介绍一种判断碰撞的方法,但不是很完美。
代码太长,只说下原理步骤。
1、获取两个对象的Rect。
2、使用interRect函数求得两对象交集区域的Rect。
3、使用for循环判断交集Rect中每一个点的像素是否大于0 , 如果大于0则说明两对象已碰撞。
其中使用writeablebitmap的pixels(offset)来判断像素值,其中offset是点的偏移量,具体查看silverlight4 SDK。