天极传媒:
天极网
比特网
IT专家网
52PK游戏网
极客修
全国分站

北京上海广州深港南京福建沈阳成都杭州西安长春重庆大庆合肥惠州青岛郑州泰州厦门淄博天津无锡哈尔滨

产品
  • 网页
  • 产品
  • 图片
  • 报价
  • 下载
全高清投影机 净化器 4K电视曲面电视小家电滚筒洗衣机
您现在的位置: 天极网>技术文档>

Flash5ActionScript教程 四十九

yesky 2000-11-23 00:00 我要吐槽
b>检测碰撞

  碰撞检测技术在游戏设计中有着广泛的应用。例如,子弹击中目标,就是一种电影剪辑与电影剪辑之间的碰撞。通过检测,即可知道子弹是否击中了目标。

  在Flash 5中,可以用MovieClip(电影剪辑)对象的hitTest方法检测动画中的碰撞。hitTest方法检查一个对象是否已经与电影剪辑碰撞,并返回逻辑值真或假(true 或 false)。使用hitTest方法的参数可以指定编辑区中碰撞区域的x和y坐标,或使用另一个电影剪辑的目标路径作为碰撞区。

  动画中的每个电影剪辑都是MovieClip对象的实例,这样就可以从任何实例中调用该对象的方法,如下例所示: myMovieClip.hitTest(target);

  使用hitTest方法可以测试电影剪辑与点之间的碰撞,也可以测试两个电影剪辑之间的碰撞。下面就给大家介绍这两种检测的实现方法。

测试电影剪辑与点之间的碰撞:

1 在编辑区创建一个动态文本框,在Text Options(文本选项)面板的Variable(变量)域中输入touch。该文本框用于显示测试结果。
2
从图符库中把一个电影剪辑拖到编辑区,选择该电影剪辑。

3 选择Window $#@62; Actions(窗口$#@62;动作),打开Object Actions(对象动作)面板。
4 在工具箱的Actions(动作)类型中双击onClipEvent,并选择Mouse move事件。
5 在工具箱的Actions(动作)类型中双击Set Variable动作。然后在Variable框中输入_root.touch,在Value(值)框中this.hitTest(_root._xmouse, _root._ymouse, true),勾选右边的Expression(表达式)复选框。得到的脚本代码应如下面所示:
lipEvent (mouseMove) {
_root.touch = this.hitTest(_root._xmouse, _root._ymouse, true);
}
本例使用 _xmouse 和 _ymouse 属性作为碰撞区的X和y坐标,并把结果输出到第1步设置的文本框显示。
6 选择Control $#@62; Test Movie(控制$#@62;测试动画),移动鼠标到电影剪辑上面即可测试碰撞,测试结果返回文本框中。
作者:莫治雄责任编辑:)
请关注天极网天极新媒体 最酷科技资讯
扫码赢大奖
评论
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
笔记本手机数码家电