合肥卓想动画工作室 承接全国+flash动画制作 + flash动画设计 + 各类flash动画制作设计


联系方式

如何使用数组的hitTest的目的

时间:2013-04-02 13:31来源:卓想动画http://www.zxgzs.com 作者:QQ:610929375 点击:


本教程介绍如何使用数组的hitTest的目的。大多数教程显示如何复制的影片剪辑也为游戏(或其他目的),但仔细看了看,是非常低效的。本教程着眼于创建一个数组,其中包含的重复片段的,那么当我们做一个循环来检查命中,环仅搜索中存在的剪辑。更多将在稍后解释。flash动画制作包括文件:hitTestArray.fla - 本教程的源代码。
理论
一般情况下,人们会创建自己的ActionScript来复制电影,然后的hitTest0到最近的剪辑,这是非常低效的,因为如果你的游戏已经上说,一个小时后,每个帧都可以被检查成千上万的片段(即使他们是不存在!),因此,我们需要一个系统来看待目前活跃的剪辑。我们将要做的是创建一个数组,然后每一个影片剪辑复制是一个'name',这个名字被放入阵列中的。然后,当我们做的hitTest的循环,我们将加强通过在阵列中的所有名称。当影片剪辑被删除,它的名称会从数组中删除。
有两种方法来实现这种系统。我可以写一个教程,一个FILO栈中闪光(PUSH / POP),但是这不会是有效的,因为事情可能会在游戏环境中取出的顺序已被纳入环境。
履行
在本教程中,我将作出一个非常基本的游戏,球掉下来的屋顶,你必须阻止他们用桨,我已经排除任何得分/游戏结束的标志,以保持尽可能的纯。
parentBall
首先主时间轴上画一个圆,选中它,并创建一个影片剪辑(F8)。现在选择的圆圈,并在实例工具栏设置其名称为”ballParent“。然后右键单击圆上的选择:动作。现在我们需要的是第一位的ActionScript以下。
onClipEvent
事件(负载){
如果(_name ==“ballParent”{
_visible = 0;
_root.array =
新的Array();
_root.arraySize = 0;
= 0;
i = 0;
} {
_x = _width / 2 +
随机(550-_width / 2;
速度= 2 +随机(4;
移动= 1;
}
}
这样做是以下几点:如果球的名字是'ballParent“(这是),我们将创建一个新的阵列部电影叫数组的根。这将是阵列保持重复的球的名称。我们还创建了一个变量名为“ARRAYSIZE的根的电影。这将被用于检查阵列的大小。最后,我们创建两个变量,稍后会用到。如果球的名字是不是ballParent,我们定义了一些变量,稍后我将描述。接下来,添加下面的代码:
onClipEvent
事件(enterFrame事件){
如果(_name ==“ballParent”{
+ +;
如果(蜱> 25{
this.duplicateMovieClip
”+我,我+10;
_parent“
”+我。=;
_root.array [_root.arraysize] = I;
_root.arraysize + +;
i + +;
= 0;
}
} {
(移动== 1{
_y + =
速度;
_y> 410{
移动= 0;
}
} {
i = 0;_root.arraysize,我+ +{
_root.array [I] ==名称){
/ /
跟踪(_root.array;
J = IJ <_root.arraysize-1J + +{
_root.array [J] = _root.array [+1];
}
和删除_root.array [_root.arraysize];
_root.arraysize -
_root.arraysize;


}
}
removeMovieClip
“”;

}
}
}
这是该系统的心脏。首先,我将解释的代码为ballParent。每帧蜱增加了一个,,如果蜱是大于25,然后重复ballParent。这将为我们提供我们的duplicatedBalls。每当一个球是重复的,我们给它的数组名。如果球是“ball0”,那么它​​的阵列的名称将是“0”(我使用的整数,以保持较低的内存使用情况,但是我们可以把它的名字使用_name表达它的实际名称)。然后,我们添加的数组的数组名。我将描述发生了什么。
_root.array [_root.arraysize] = I;
_root.arraysize + +;
例如,如果数组的大小'0',那么我们需要给我们的重复球的第一个元素的数组名。如果数组的大小'5',那么,第六个元素必须被命名。由于数组的第一个元素是0其实,我们就可以说:ARRAYNAME [ARRAYSIZE] = NAME然后,我们增加了磁盘阵列的大小,并增加我。





(责任编辑:卓想动画http://www.zxgzs.com)




上海 北京 深圳 广州 成都 杭州 重庆 武汉 苏州 合肥 亳州 天津 南京 沈阳 西安 青岛 大连 宁波 济南 哈尔滨 长春 厦门 郑州 长沙 福州 乌鲁木齐 昆明 兰州 无锡 南昌 贵阳 南宁 太原 石家庄 呼和浩特 佛山 东莞 唐山 烟台 泉州 包头 温州 淄博 海口 银川 西宁 南通 大庆 徐州 潍坊 常州 鄂尔多斯 绍兴 济宁 盐城 邯郸 临沂 洛阳 东营 扬州 台州 嘉兴 沧州 榆林 泰州 镇江 昆山 江阴 张家港 义乌 金华 保定 鞍山 泰安 宜昌 襄阳 中山 惠州 南阳 威海 德州 珠海 柳州 宿迁 芜湖 岳阳 菏泽 漳州 信阳 蚌埠 绵阳 株洲 邢台 桐城 桂林 衡阳 铜陵 三亚 阜阳 荆州 遵义 咸阳 驻马店 上饶 湛江 湘潭 汕头 莆田 滁州 廊坊 赣州 肇庆 九江 德阳 淮安 曲靖 湖州 揭阳 许昌 秦皇岛 江门 新乡 潮州 商丘 宁德 吉林 连云港 常德 宜春 黄冈

卓想动画 版权所有 flash作业- 网页设计作业
返回首页   |   电话咨询   |   微信咨询