频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 虚拟主机  域名注册     常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发工具应用教程 -> Flash教程 -> Flash游戏制作:贪食蛇(3)

Flash游戏制作:贪食蛇(3)

作者:未知  来源:http://edu.chinaz.com  发布时间:2005-7-18 23:15:25  发布人:acx

减小字体 增大字体

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.到此为止,游戏中最关键的部分就完成了,最后就差主场景的布置了。


将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 注册码大全三
· 让你轻松架设FTP服务器1..
· 梦幻背景图片7
· 卡通动物图片6
· 风景图片8
· 网页制作素材-按钮素材2..
· 注册码大全九
· 让你轻松架设FTP服务器5..
· 50MB免费空间 FTP PHP M..
关注此文读者还看过
· 我的论坛源代码(三)
· 素描原理与Photoshop鼠绘..
· Pattern Modifiers - 规..
· 10条优秀的网站设计经验..
· 商业电子邮件未注明"广告..
· 网站制作入门之了解网站..
· Google遭用户起诉 AdSen..
· 网络营销三步曲
· 传统招聘网站吸纳新技术..
· 常见的CSS问题的“一站式..
· 国外免费空间/50M-2.5G/..
· 蠕动线框动画的制作(4)
· 模仿Google迅速崛起 Ask..
· 构建反病毒反垃圾邮件系..
· SQL Server数据库技术(..
· Access数据库技术(19)
相关文章
· 四个原因让Silverlight无法..
· 用 jsfl 扩展你的 flash
· 让 Flash 广告具有记忆功能..
· 利用FLASH 8绘图功能..
· Flash动画技巧:动画..
· Flash DateChooser 组..
· Flash动画概述、影片..
· Flash背景透明和层次问题
· Flash电子杂志常用滚动区域..
· 在Mozilla和Firefox浏览器中..
· 符合web标准的flash调用方法..
· 教你如何去掉网页上的..
· Dreamweaver也能轻松制作Fl..
· 上海专业web开发团队招聘高..
· 如何进行FLASH网址验证防下..
· 实例技巧:Flash与HTML实现交..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
免责申明:中国建站之家(www.jz123.cn)上的所有提供下载的软件和资源
均来源于网络,为软件或程序作者提供和网友推荐收集整理而来,仅供学习
和研究使用。如有侵犯你的版权,请立即联系我们,本站将在3个工作日内删除。
粤ICP备05092265号