快速业务通道

Flash游戏实例制作:打小狗

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-15
以减少发生错误的机率并使你的ActionScript更具有可读性。
  回到scene 1,insert>layer新建一层改名为dog,从library中拖放dogmovie到这一层,复制9个,使每一个dogmovie都正好处在background层中每一个黑色椭圆长轴以下。

?  mask遮罩层

  遮罩的概念是:遮罩层可以遮盖任何同遮罩层相关联的图层(被遮层)里的内容。
  在scene 1中insert layer并将此层改名为mask,以background层上的黑色椭圆长轴为基准,画一个矩形,并使此矩型比dogmovie稍大一点,复制九个排列好。右击此层在弹出菜单中选mask,这样,我们就做好了一个遮罩。也就是说在dog层上的所有原件除非出现在本层9个矩形范围以内,否则便都是不可见的了。


  由于现在dog层上并没有任何的原件在此范围内,所以虽然我们在dog层上放了9个原件但我们将只能看到background层上9个黑色hole,但记得吗,我们做的dogmovie是上下移动的movieclip,而当其向上运动时就会显示在屏幕上,而向下运动就会从屏幕上消失。这样就达到了我们让小狗一进一出的目的。
   但是有个严重的问题,我们的9个dogmovie会同时运动,而不是象我们希望的那样一个一个的运动,别急,下面就该我们的主角action script出场了。


  添加action script代码   随机运动

  双击pigmovie中的第一帧,在action面板中的basic action中选取stop()。
  单击dog层上的一个dogmovie,window>panels>instance,将name设为dog0。

依次将其它的dogmovie命名为dog1,dog2.....dog8。在scene1中新建一层action, 双击第一帧,在action面板中的basic action中选取stop(),在第5帧新建关建帧,双击第5帧,输入actions如下:   tellTarget ("/dog" add random(9)) {
    gotoAndPlay ("up");
  }


  代码分析:
  random(9)是从0-9中任取一数,add 是一个字符传连接符,用来连接"/dog"和random(9)得到的数。
  telltarget的语法是:
  telltarget(target);{
    statement;
  }
  target:指定时间轴线的目标路径字符串
  statement:目标时间轴线代码
  tellTarget ("/dog" add random(9))执行后的结果是调用/dog0,/dog1....../dog8,而gotoAndPlay ("up")从up帧开始播放,这就达到了我们dogmovie随机出现的目地。   鼠标替换

  为了使游戏更真实,我们应当屏闭掉默认的鼠标图形,并用我们做好的movieclip来代替它。先insert>symbol新建一个moviclip原件命名为knife,双击第一帧,在action面板中的basic action中选取stop(),在第二帧画一把刀,第三帧在刀边画上一串血花。


(图11)
回到scene1,把knife拖拽到background层,并命名为knife,在action层的第4帧建立关键帧,并输入如下actions:
  mouse.hide();
  startDrag ("knife", true);
  代码分析:
   mouse.hide()把默认的鼠标隐藏起来。
  startdrag的语法是:
    startdrag(target);
    startdrag(target,[lock]);
    startdrag(target,[,lock[,left,top,right,bottom]]);

  target:待拖动的movie clip的目标路径
  lock: 布尔值,用来指定是把可拖动的movie clip锁定在鼠标中央位置(真),还是锁定在用户最初在movie clip上单击的位置(假)。
  这个参数是可任选的。
  left,right,top,bottom:指定动画的父代movie clip的限制矩形区域。这个参数是可任选的。这样我们就可以用knife来取代默认的鼠标。
  计分与轮次:

  我们预定游戏10个回合后结束,并且每个回合都要计算本轮得分与总分。10回合后游戏结束。首先来看看怎样实现计算游戏回合:
  双击action层上第四帧输入:ROUND="0",单击第5帧在frame面板上定义lable为:again,在第30帧建立关键帧,并将其frame lable定义为
  back,双击action层上第26帧输入a

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号