仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 811|回复: 7
打印 上一主题 下一主题

[学习教程] 来一发Flash游戏制造:贪食蛇(3)

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 21:39:10 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
运行时,它可以跨浏览器和操作系统、原汁原味地呈现具有表现力的应用程序、内容和视频,功能强大,兼容性高。
Action代码把持

  这一步是全部游戏制造中最最关头的阶段,游戏的次要把持部分都在这里完成。

  1.拔取insert--.>newsymbol菜单命令,仍是新建一个movieclip范例的组件,并给其定名为control.

  2.在组件control的编纂形态下,新建一个图层layer2,此图层用来增加游戏的主action.

  3.给图层layer2的第二到第七帧全体拔出关头帧,而且在properties属性面板中给第7关头帧增加帧标签framelabel:”lose,”,如所示:<Palign=center>

<P>  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"addj,getProperty("/snake",_x));
  set("oldy"addj,getProperty("/snake",_y));
   //复制蛇身,蛇身的数量即是n
  duplicateMovieClip("/snake","snake"addi,i);
  k=j;
   //当第一个蛇身的地位与食品的地位相称时,分数加上9,蛇身个数加1,并转到第三帧。
  if(Number(x)==Number(foodx)andNumber(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",如0所示:<Palign=center>

0  13.在图层layer1的第8帧增加以下as:

  //挪用数组"oldx"&j和"oldy"&j来跟第一个蛇身的地位对照,假如相称的话,则GameOver。

  j=1;
  while(Number(j)<NUMBER(N)){
    if(x==get("oldx"addj)andy==get("oldy"addj)){
      re=1;
    }
    j=Number(j

此外,还支持α透明功能,能够设计人员在Flash视频中对诸如文本、矢量图像以及其它Flash元素等进行整合。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-16 20:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表