欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 多媒体动画 >> Flash教程 >> Flash游戏实例教程 >> 教程正文

  没有公告

教程: Flash教程-Flash游戏实例教程-Flash游戏制作:贪食蛇 更多...
教程: Flash教程-Flash游戏实例教程-Flash游戏制作:贪食蛇

还是新建一个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

  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)

  14.最后的时间线如图11所示:

图11
  15.到此为止,游戏中最关键的部分就完成了,最后就差主场景的布置了。
  场景布置

  1.最后回到主场景,我们在图层layer1的第2帧处插入一个关键帧,然后回到第一帧,在此帧我们输入一些游戏的提示信息,比如游戏的玩法,游戏的介绍等,然后把前面制作好的游戏开始按钮也拖放到合舞台中适的位置,如图12所示:





图12
  2. 给第1关键帧加actioon:stop();,以便让游戏一开始停止在此帧,等待用户的响应。

  3. 给第1关键帧中的游戏开始按钮添加action:
  on (release)
  
  //按下开始按钮后,跳到下一帧开始游戏。

  4.选中主场景的第2关键帧,将图库中的组件control拖到舞台上,同时将组件food和snake也拖到舞台上,并在properties属性面板中分别给这两对象命名为food和snake,如图13和图14所示:
  
图13          图14
  5.用矩形工具在舞台的左边画一个无填充色黑色的线框,如图15所示,作为贪食蛇的活动范围。

图15
  6.既然是游戏,当然少不了计分,我们用文本工具在舞台右边画一个文本框,然后在properties属性面板中设置文本框为(dynamic text)动态文本框,变量名var为score,然后在文本框上方写上”分数”两个字,如图16和图17所示:

图16


图17
  7. 这样,我们的游戏就制作完成了,主场景非常简洁,只有两帧,最后的时间线如图18所示:

图18
  8.最后您需要的工作就是发布游戏了,玩着自己亲手做的游戏,是不是感觉不一样啊。

  贪食蛇是flash中相对来说比较简单的游戏,虽然简单,不过在制作过程中也可以很好的锻炼人的思维能力,您可以通过本游戏的制作,开拓思路,来制作其他一些大家喜闻乐见的小游戏,一起来试试吧!



上一页  [1] [2] [3] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    3DsMAX实例制作:三维玻璃灯泡

    3dmax在线教程--蝴蝶

    3ds max时尚水晶鞋

    精彩Flash制作风吹草动效果动画

    教程: 3DS Max-设计实例-三维虚拟…

    3dmax7.0教程--火焰特效

    绘画技巧:Flash绘制人头造型

    3ds max 室内设计---室内效果图
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网