- 27
- 0
- 约3.68万字
- 约 42页
- 2017-06-07 发布于湖北
- 举报
1.1 不规则形状对象的碰撞测试 1
1
第 1 章
高级碰撞检测 2
3
撞检测可谓一门数学、艺术或科学,或者就是一般意义上的猜测推断,用来确定某个
碰
对象是否与另一个对象发生碰撞。这听起来很简单,不过当你面对的是只存在于计算
机内存中并由一组不同属性表示的对象时,复杂性便会接踵而至。
碰撞检测的基本方法在《Flash ActionScript 3.0 动画教程》① 一书中做了详细说明。本章将讨 4
论该书中未涉及的一种碰撞检测方法,并介绍一种处理大量对象互相碰撞的策略。
需要指出,主题是碰撞检测,因此不会深入研究在检测到碰撞之后要做的事情。如果你在
开发一个游戏,可能希望发生碰撞的对象爆炸、改变颜色,或者只是简单地消失。处理碰撞结
5
果还有一种相当复杂的方法,这个方法在《Flash ActionScript 3.0 动画教程》的11.3节中做了介
绍。不过,最终还是要由你(根据所构建应用或游戏的规范)来确定检测到碰撞时该如何做出
响应。
1.1 不规则形状对象的碰撞测试 6
《Flash ActionScript 3.0 动画教程》中介绍了几个碰撞检测的基本方法,包括内置的hitTest-
Object和hitTestPoint方法,以及基于距离的碰撞检测。以上各种方法分别适用于不同形状的参
与碰撞检测的对象。hitTestObject方法非常适合检测两个矩形对象之间的碰撞,但是对于其他 7
形状往往会生成假警报。hitTestPoint方法适用于以下两种情况:查看鼠标是否位于一个特定对
象之上,或者一个很小的点状对象是否与任何其他形状的对象发生碰撞,但是这个方法对于检测
两个较大的对象则束手无策。基于距离的碰撞检测非常适于处理圆形对象,不过对于其他形状的
对象常常会产生碰撞漏检。 8
Flash 中实现碰撞检测的理想方法(相当于这个领域的“圣杯”)是对两个不规则形状的对象
进行相互测试,从而准确地知道它们是否接触。从Flash 8 开始,已经有一种方法可以通过
BitmapData类做到这一点(不过《Flash ActionScript 3.0 动画教程》中没有讨论这种方法)。实际
上,这种方法有一个很贴切的名字:hitTest。 9
首先,需要对一些术语做一点说明。ActionScript包含一个BitmapData类,其中保存要显示的
具体位图图像,另外还有一个Bitmap类,这是包含一个BitmapData的显示对象,并允许将这个
10
① 此书已由人民邮电出版社于2008年4月出版。——编者注
2 第 1 章 高级碰撞检测
BitmapData添加到显示列表中。在后面的介绍中,如果我特别指出其中某一个类或者某个类的实
例,会使用首字母大写的类名(BitmapData或Bitmap)。不过,通常情况下,我可能会用位图(bitmap )
一词不太正式地指一个位图图像。不要把它与Bitmap类相混淆。
BitmapData.hitTest会比较两个BitmapData对象,指出它们
您可能关注的文档
最近下载
- 北京市西城区2025-2026学年高三上学期期末考试 化学 含答案.docx VIP
- 河北省中考:2025年-2023年《物理》考试真题与参考答案.pdf
- 年度物业服务投标方案(技术标).docx
- 模型02、含弹簧的物理模型 【巧解题】2024高考物理模型全归纳含答案.pdf VIP
- 辽宁名校联盟2025-2026学年高三上学期1月期末考试数学试卷(含答案解析).pdf
- 2025年最新河南省高考对口升学机电与机制类基础课试题卷 .pdf VIP
- 2025年山东力明科技职业学院单招考试语文近5年参考题库含答案解析.docx
- 绿色建筑的绿色建筑材料.ppt VIP
- 食品安全控制与管理-全套PPT课件.pptx
- 绿色建筑与绿色施工.ppt VIP
原创力文档

文档评论(0)