Flash设计 动物行为效果制作之---蛇篇
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-09
实例效果 白白的纸上,一只金光闪闪的蛇在不停地游动,效果逼真。而且,我们可以控制蛇的节数的变化。制作中,大家要注意对编程技巧的研究。 设计步骤 设置Flash场景大小为550px x 450px,背景为白色,60fps。“属性”面板设置如图1所示。 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]?[2]?[3]?下一页?? 二、设计场景 1. 回到“场景1”,双击“图层 1”的文字,改名为actions。按快捷键Ctrl+L打开“库”面板,把action“影片剪辑”元件拖拽到该层的场景中,这时场景中会多出一个白色的小圆圈,见图6箭头所指。点选这个白色的小圆圈(ac |
|||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash设计 动物行为效果制作之---蛇篇的所有评论