快速业务通道

Flash动物行为设计之蛇篇

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10


  白白的纸上,一只金光闪闪的蛇在不停地游动,效果逼真。而且,我们可以控制蛇的节数的变化。制作中,大家要注意对编程技巧的研究。

设计步骤

  设置Flash场景大小为550px x 450px,背景为白色,60fps。“属性”面板设置如图1所示。 图1 一、设计元件

  1.?制作金蛇。

  按快捷键Ctrl+F8新建一个名为max的“影片剪辑”元件。在max元件第1帧的场景里制作一个蛇头,如图2所示,蛇头的长为18px;高为12px。 图2   注意:一定要如图2所示把场景的中心点放在蛇头的中心,防止蛇头和蛇身脱节。 图3   点选max元件场景中的第2帧,按快捷键F7键新建一个空白关键帧,并如图片3所示在第2帧的场景里制作一个蛇节。蛇节长6.5px,高6.5px。 图4   分别在第35,70,100帧按F6键插入关键帧,蛇节大小分别改为(6px,4px)、(6px,1.5px)、(6px,1px)。分别选中第2,35,70帧,选择“属性”面板“补间”下拉列中的“形状”命令,见图4。如果为了效果更加逼真,可以用不使用“形状渐变”动画,使用“逐帧”动画。设置好的“逐帧”动画如图5所示。??????? 图5   2.?制作按钮。

  按快捷键Ctrl+F8新建一个“按钮”元件,写上“确定”二字,见图8。个人根据爱好随意设计。

  3.?设计Action影片。(大家可以先跳过代码,看下面的元件设计)

  按快捷键Ctrl+F8新建一个名为action的“影片剪辑”元件。点选action元件场景中的第1帧,按F9键,在弹出“动作”面板中输入如下代码:

// 以下代码实现了蛇的运动

// 得到action元件在X轴方向上的位移值
?dx =_root.mouser._x-x1;

// 得到action元件在Y轴方向上的位移值
?dy =_root.mouser._y-y1;

// 蛇的节数加1
?cnt++
?max=_root.max

// 当蛇的节数超过最大值时,置0,不让蛇无限变长
?if (cnt>max) {
??cnt = 0;
?}
?// 复制max元件,使蛇的节数不断增加
?duplicateMovieClip("_root. head", "head"+cnt,cnt);
?// 把变量y1的值赋值给实例“head”
_root["head"+cnt]._x=x1;
// 把变量y1的值赋值给实例“head”
?_root["head"+cnt]._y=y1;
// 把影片action的x轴坐标值赋给变量x1
?x1=_root.mouser._x;
// 把影片action的y轴坐标值赋给变量y1
?y1=_root.mouser._y;

// 以下代码实现了蛇节角度的变化,从而使效果逼真

// 使蛇头与蛇节的角度变化一致
// alfa是控制蛇节角度的变量
?if (Number(dx) == 0) {
??alfa = 90;
?} else {
// 变量x为角度正切值
??x = dy/dx;
??if (Number(x)<0.99 and Number(x)>Number(-0.99)) {
// 本应用泰勒展开式计算该角度值,但考虑有些朋友不懂,就简单让它乘以40,如不乘蛇就不那么光滑了
???alfa = (Number(x-x*x*x/3)+Number(x*x*x*x*x/5))*57.29578;
??} else if (Number(x)>=0.99 and Number(x)<=1.01) {
// 如果角度值恒等于1就设角度为45度
???alfa = 45;
??} else if (Number(x)<=Number(-0.99) and Number(x)>=Number(-1.01)) {
???alfa = -45;
??} else if (Number(x)>1.01) {
???alfa = 90-(Number(1/x-1/x/x/x/3)+Number(1/x/x/x/x/x/5))*57.29578;
??} else {
???alfa = -90-(Number(1/x-1/x/x/x/3)+Number(1/x/x/x/x/x/5))*57.29578;
??}
?}
?if (Number(dx)<0) {
??alfa = alfa-180;
?}
?_root["head"+cnt]._rotation=alfa;

  4.?接着,在第2帧中输入如下代码:

// 构造回路
gotoAndPlay(1);
二、设计场景

  1.?回到“场景1”,双击“图层 1”的文字,改名为actions。按快捷键Ctrl+L打开“库”面板,把action“影片剪辑”元件拖拽到该层的场景中,这时场景中会多出一个白色的小圆圈,见图6箭头所指。点选这个白色的小圆圈(action元件),在“属性”面板中起实例名为mouser,如图6所示。接着点选该层的第300,550,800帧按下F6键。再分别点选第1,300,550帧,选择“属性”面板中的“

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号