时间: 2021-07-31 作者:daque
action代码遏制 这一步是所有游戏创造中最最要害的阶段,游戏的重要遏制局部都在这边实行。 1.采用insert--.>new symbol菜单吩咐,仍旧兴建一个movie clip典型的组件,并给其定名为control. 2.在组件 control的编纂状况下,兴建一个图层layer2,此图层用来增添游戏的主action. 3.给图层layer2的第二到第七帧十足插入要害帧,而且在properties属性面板中给第7要害帧增添帧标签frame label:”lose,”,如图9所示: 图9
4. 开始在layer2的第1要害帧中增添as: // 设定馋嘴蛇初始x坐标值 x = 198; // 设定馋嘴蛇初始y坐标值 y = 306; // 设定边境的最右坐标值 maxx = 540; // 设定边境的最左坐标值 minx = 18; // 设定边境的最底坐标值 maxy = 378; // 设定边境的最顶坐标值 miny = 18; // 设定馋嘴蛇初始向横目标的步数 xm = 18; // 设定馋嘴蛇初始向竖目标的步数 ym = 0; // 设定蛇身的个数 n = 10; // 初始化i,j和场景上score因变量的值,score值表白分数。 i = 0; j = 0; /:score = 0; //提防:这边 /:score 是指明主场景入彀分变量score的路途 5.在layer2的第2要害帧增添as: // 设定第一个蛇身的场所 setproperty("/snake", _x, x); setproperty("/snake", _y, y); 6. 在layer2的第3要害帧增添as: // 运用random因变量设定食品的随机场所 foodx = int(number(random(30))+1)*18; foody = int(number(random(20))+1)*18; setproperty("/food", _x, foodx); setproperty("/food", _y, foody); 7. 在layer2的第4要害帧增添as: i = number(i)+1; j = number(j)+1; if (number(i)>number(n)) { i = 1; j = 1; } // 设置一个数组"oldx"&j和"oldy"&j来记载各个蛇身的场所。 set("oldx" add j, getproperty("/snake", _x)); set("oldy" add j, getproperty("/snake", _y)); // 复制蛇身,蛇身的数量即是n duplicatemovieclip("/snake", "snake" add i, i); k = j; // 当第一个蛇身的场所与食品的场所十分时,分数加上9,蛇身个数加1,并转到第三帧。 if (number(x) == number(foodx) and number(y) == number(foody)) { /:score = number(/:score)+9; //提防:这边 /:score 是指明主场景入彀分变量score的路途 n = number(n)+1; gotoandplay(3); } 8. 在layer2的第5要害帧增添as: // 使第一个蛇身的场所横向挪动xm个坐标或竖向挪动ym个坐标。xm和ym数值确定于按下的目标键。 x = number(getproperty("/snake", _x))+number(xm); y = getproperty("/snake", _y)-ym; setproperty("/snake", _x, x); setproperty("/snake", _y, y); 9. 在layer2的第6要害帧增添as: // 即使第一个蛇身的场所胜过了边境,转到"lose"这帧。要不就转回到第四帧 if (number(x)>number(maxx) or number(x)<number(minx) or number(y)>number(maxy) or number(y)<number(miny)){ gotoandstop("lose"); } else { gotoandplay(4); } 10.而后回到图层layer1,在此层咱们来增添用来确定贪食蛇能否首尾贯串的action. 11.在图层laye1的第5帧插入一个要害帧,增添如次action; // 挪用label名为judge的帧,来确定蛇身能否首尾贯串。 call("judge"); 12.在图层laye1的第8帧插入一个要害帧,并树立此帧的帧标签为"judge",如图10所示:
图10
13.在图层layer1的第8帧增添如次as: // 挪用数组"oldx"&j和"oldy"&j来跟第一个蛇身的场所比拟,即使十分的话,则game over。 j = 1; while (number(j)<number(n)) { if (x==get("oldx" add j) and y==get("oldy" add j)) { re = 1; } j = number(j)+1; } j = k; if (number(re) == 1) { gotoandstop("lose"); } 14.结果的功夫线如图11所示:
图11
15.到此为止,游戏中最要害的局部就实行了,结果就差主场景的安置了。