教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> IT计算机> Flash/Flex> 基于actionscript的flash游戏碰撞检测研究

基于actionscript的flash游戏碰撞检测研究

上传者:关宏超
|
上传时间:2015-04-24
|
次下载

基于actionscript的flash游戏碰撞检测研究



科技信息 SCI ENCE & TECHNOLOGY I NFORMATI ON 2012 年 第29 期
Flash 是我们使用最广泛的交互式适量动画制作工具, 我们知道
ADOBE 公司出品的播放 flash 动画的 FLASH PLAYER 在全球的桌面
电脑上拥有 97%的占有率。 Flash 拥有出色的图形处理能力,丰富的画
面表现能力,优秀的交互性能,而且它所制做的动画,矢量图形体积
小,下载方便,容易传播,这些特点使其已经成为现今游戏制作的最重
要的工具之一,也成为下一代 RIA(Rich Internet Application, 富互联
网应用程序)的主力
1 Flash 游戏与 actionscrip 语言的发展
自从 flash 在 996 年发布以后,flash 和 actionscript 语言同步发

[]
,越来越多的人运用该软件和 actionscript 语言进行动画制作和设
计, 尤其在智能手机和网络游戏产业高速发展的今天, 无数使用
actionscript 语言制作的应用和游戏丰富着我们的生活。 从上个世纪开
始就有程序员利用 flash 制作一些简单的单机版游戏比如贪吃蛇和泡
泡龙。 在 actionscript 3.0 出现以前,大部分简单的小游戏将动作代码
置于关键帧内。 直至 actionscript 3.0 的出现,这个面向对象的语言给
flash 游戏的制作带来了新的活力,一些大型的社交网站例如开心网,
腾讯空间等都运用了 actionscript 3.0 技术制作,一些大型的网页游戏
也使用 flex/flash 和 actionscript3. 作为前端开发工具。
2 交互式游戏中碰撞检测的研究
大多计算机游戏都是交互式游戏,在这些交互式过程中,通常需
要判断 2 个或者多个物体是否接触发生碰撞而产生相应的效果。 例如
贪吃蛇游戏中,我们通常需要判断蛇与障碍物是否接触碰撞,碰撞后
通常障碍物消失而蛇的身体延长,除了与障碍物的碰撞外,还需要检
测蛇行进过程中与画面边缘的碰撞,如果碰撞后,可以直接判断游戏
失败,或者越墙而过出现在画面另外一端。 在 actionscript 2. 流行的
时候,我们有一种很简单的检测碰撞的方法:距离检测法 简单的来
说,距离检测法即判断两个物体之间的直线距离是否大于两个物体的
直径之和,如果直线距离小于直径之和,则两个物体一定发生碰撞 通
常情况下,我们会设置一个全局参数来判断碰撞状态,部分代码如下:
//假设我们有 2 个苹果 那么判断他们是否相撞则比较它们的距

public function checkHitTest()
{
var dx:Number= appleA.x)- appleB.x);
var dy:Number= appleA.y)- appleB.y);
var distance:int=Math.sqrtdx*dx+dy*dy);
var length:int = appleA.r + appleB.r
//计算两个物体的直径之和
if distance> length)
{
isHit = false;
}
else
{
isHit = true;
}
}
虽然距离检测法非常直观方便,但是由于用来比较的是两个物体
的平均直径之和, 所以该方法用于圆形物体的碰撞检测准确且方便
但该方法最大的缺点是对于非圆形物体,尤其是不规则形状物体的直
径测量等不方便且存在误差较大
自从 AS 3. 逐渐普及以后, 给检测物体间碰撞的方式带来了极
大的方便,AS 3. 中带有一个很简单的 hitTestObject 方法可以用来检
测任意两个对象是否发生相互碰撞 判断两个物体是否碰撞的简单方
法如下
[2]

If  appleA.hitTestObjectappleB) )
{
isHit = true;
}
else
{
isHit = false;
}
我们可以看到,对象苹果 A 后面紧跟着 hitTestObject 方法,此外,
该方法还带有一个参数对象苹果 B,即碰撞检测的目标对象 仅仅几
行代码,AS 3. 即可以使用简单的逻辑进行碰撞检测, 但是和距离检
测法一样,hitTestObject 也有一些明显的缺点
通常在 FLASH 中我们所看到的对象是一个不规则的图形, 使用
hitTestObject)方法的时候,可能部分程序员会认为只要接触到对象边
缘及以内即可以成功进行碰撞检测,但是事实上并非如此
在不规则的图形外面有一个运行的时候并不能看见的矩形盒
子,通常我们称之为边框,比如图  中飞翔的海鸥,当我们单击它
的时候会发现它的四周是有矩形边框的,当我们使用 hitTestObject
) 方法的时候,只要任意一个物体的某一部分边框接触到另外物体
的边框的时候,都被认为发生了碰撞,但是在视觉上可能因此造成
了错觉 就如图  中所示, 明明没有触碰到的海鸥在实际判断中
还是相撞了 由此可见,hitTestObject) 方法更适应于矩形或者方形
物体 越规则的物体的碰撞检测使用 hitTestObject) 方法精确度越
高 (下转第 136 页)
基于
actionscr ipt

flash
游戏碰撞检测研究
齐 济
(顺德职业技术学院 广东 顺德 528300)
【摘 要】Flash 游戏随着 actionscript 语言的发展变得越来越流行,尤其是 actionscript3.0 问世以后,面向对象的语言是以元件等来制作动画
的 flash 变得更加简单和便于实现。 碰撞检测是 flash 游戏里面非常关键的一个概念,由于两个物体的运动不可避免而发生的碰撞,会给整个游
戏带来更加精彩的可玩性。 本文主要介绍了从 actionscript 2. 开始 flsh 游戏中最常用的一些碰撞检测机制,深入剖析了各自的优缺点,为以后
进一步的深入研究做好准备。
关键词Actionscript 语言;Flsh 游戏;碰撞检测
A Survey of Flash Game Collision Detection Based on Actionscript
QI Ji
(Guangdong Shunde Polytechnic College,Shunde Guangdong,528300)
bstractThe flash game is more and more popular with the development of actionscript language especially since the creation of actionscript
3.. The flash animation is much easier to implement because the actionscript 3. is a f Object-oriented language. The collision detection is a very
important concept in flash game. The two moving objects will undoubtedly have a collision when they move around and which will make the flash
game more interesting. Our paper will introduce sevreal collision detection schemes since actionscript 2. discuss the advantage and disadvantage of
all those schemes for the further research.
Key wordsActionscript language;Flash game;Collision detection
○I T论坛○
132

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注视频

冀教版小学英语五年级下册lesson2教学视频(2)
北师大版小学数学四年级下册第15课小数乘小数一
二年级下册数学第三课 搭一搭⚖⚖
二年级下册数学第一课
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,辽宁省
沪教版牛津小学英语(深圳用) 四年级下册 Unit 4
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
外研版英语七年级下册module3 unit2第二课时
北师大版数学 四年级下册 第三单元 第二节 小数点搬家
七年级下册外研版英语M8U2reading
化学九年级下册全册同步 人教版 第22集 酸和碱的中和反应(一)
沪教版牛津小学英语(深圳用) 四年级下册 Unit 12
沪教版八年级下次数学练习册21.4(2)无理方程P19
小学英语单词
沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
北师大版数学四年级下册第三单元第四节街心广场
外研版英语三起6年级下册(14版)Module3 Unit2
二年级下册数学第二课
七年级英语下册 上海牛津版 Unit5
第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
青岛版教材五年级下册第四单元(走进军营——方向与位置)用数对确定位置(一等奖)
沪教版牛津小学英语(深圳用) 四年级下册 Unit 7
冀教版英语三年级下册第二课
第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
沪教版八年级下册数学练习册21.3(3)分式方程P17
冀教版小学英语四年级下册Lesson2授课视频
苏科版八年级数学下册7.2《统计图的选用》
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省