枪战游戏主要应用的代码 1.鼠标跟随 startDrag(this, true);用来做标准器 2.层级别的控制 swapDepths(); 3.碰撞检测 hitTest(_root.gun.hit) 4.动态加载敌人: _root.attachMovie(); 5.动态文本框制作 显示分数 制作流程: 1.准备一个瞄准器MC,内含开火的动画 2.敌人MC一个,内含敌人中弹动画,在库中将敌人MC连接ID命名为“man" 3.动态文本框 编写代码: 首先主时间轴第一帧AS: // ------主时间轴代码---------------- // 将鼠标隐藏 Mouse.hide(); // 初始配置分数为0 scores = 0; 此变量必须和分数文本框的变量名对应 // 封装代码,建立新的函数"copyman" function copyman() { // 复制库中ID为“man"的MC到主场景,命名为“man” _root.i,层级别为_root.i // 注意:_root.i没有配置初始值,所以默认为无。 // _root.i ,就是_root.i 1 _root.attachMovie("man", "man" _root.i, _root.i ); // 配置新MC的位置 // 将复制出来的新MC放到x轴为0-550之间,y轴为0-400的随机坐标上 _root["man" _root.i]._x = random(550); _root["man" _root.i]._y = random(400); } // 执行新函数 copyman(); 然后将瞄准器MC拖到舞台实例名为“gun”在其MC上写AS: // ----------准星MC的代码-------------- onClipEvent (enterFrame) { // 实现鼠标跟随,并且所定鼠标到此MC的注册点 startDrag(this, true); } onClipEvent (mouseDown) { // 当鼠标按下的时候运行到此MC第3帧(开火动画)执行 gotoAndPlay(3); } onClipEvent (load) { // 配置次准星层级别为9999,数字越大层级越高,以免准星被敌人覆盖 this.swapDepths(9999); } 此MC内部有个开火的动画在开火动画这一段加上一隐形MC,实例名为“hit” 制作敌人MC内部 敌人MC内部,第一帧为没有中弹时候的画面,在这帧再加入一隐形MC,加AS: // 碰撞检测 onClipEvent (enterFrame) { // 假如假如检测到于准星MC里的hit发生接触就在上一级跳转到第5帧(被毖了)执行. if (hitTest(_root.gun.hit)) { _parent.gotoAndPlay(5); } } 5帧以后为中弹后死亡的动画,在最后一帧加AS: // 分数加100 _root.scores = 100; //运行copyman的函数 复制敌人 _root.copyman(); // 删除此MC removeMovieClip(this); 本文来源:https://www.wddqw.com/doc/ea6acd0a5ff7ba0d4a7302768e9951e79a89698f.html