MC新手入门(十一)------动画旋转放缩

来源:互联网 发布:ipad淘宝历史版本 编辑:程序博客网 时间:2024/05/17 14:16
 我们玩游戏的时候有很多情况可能用到放缩旋转,例如:一个炮台根据鼠标位置将炮口对准鼠标所指的方向,又例如,实现像灰太狼一样被击飞的效果,边飞边旋转变小最后消失在天空。动画的旋转是指动画图片围绕着中心点做圆周运动。放缩是指动画图片按比例横向或纵向放大和缩小。
例如我们熟知的“祖玛”中会根据光标移动来旋转中心的那只癞蛤蟆。

3-4-7-1.png

                             图3-4-7-1

MC里放缩的实现
MC中能通过三种方式对角色的动画进行旋转和放缩
方法一:直接修改角色的角度和缩放参数。

3-4-7-1-1.png

图3-4-7-1-1

以上将放缩比例设置为2.0
导出运行以后显示

3-4-7-1-2.png

图3-4-7-1-2

这里面,左边的人物是运行后放大为原来的2倍的角色动画,右边的是原始大小。
这种方法只能对角色的初始动画进行一次固定的旋转或者放缩改变
方法二:在行为列表里选择。
例如,我们在鼠标点击时间里面添加行为

3-4-7-1-3.png


图3-4-7-1-3

然后从行为列表里选

3-4-7-1-4.png


图3-4-7-1-4

方法三:在脚本编辑器中使用相关函数。
函数格式:

intRotoZoomActor(const char *actorName, double angle, double zoomx, double zoomy,int smooth);

功能改变角色动画的旋转角度和大小

参数说明

actorName角色名称

angle旋转角度

zoomx水平方向的放缩比例

zoomy竖直方向的放缩比例

smooth:是否需要平滑线条
用法举例:

RotoZoomActor("Event Actor", dAngle, dZoom,dZoom, true);

3.4.7.2  实例制作接下来开始制作灰太狼被击飞的效果,来掌握旋转和放缩。
使用场景:在射击类游戏中,用准星瞄准敌人,射击,敌人被击飞,击飞过程中不断旋转变小,最后消失
目标:用准星瞄准灰太狼,点击发射子弹将它击飞。
实例:

3-4-7-2-1.png


图3-4-7-2-1

逻辑分析:
          先创建准星
          创建一只灰太狼
          判断子弹是否击中灰太狼
          如果子弹击中灰太狼
        {
             灰太狼被击飞
         }
         灰太狼又回来啦
                                   
MC中的实现:
先按图示位置摆放准星和灰太狼角色;
准星角色名称为actCrosshair
灰太狼角色名称为actWolf

3-4-7-2-2.png


图3-4-7-2-2

为了让准星实现跟随鼠标效果,我们给准星添加“角色绘制”事件,对应“跟随鼠标”行为。

3-4-7-2-3.png


图3-4-7-2-3

建立两个自定义变量,dZoom表示要放缩的倍数,dAngle表示旋转的角度。

3-4-7-2-4.png


图3-4-7-2-4

然后装载一个计时器

3-4-7-2-5.png


图3-4-7-2-5

给灰太狼添加三个事件:“创建角色”“鼠标键按下”“使用计时器”
“创建角色”事件添加“脚本编辑器”行为,代码如下:
dZoom = 1.0;
dAngle = 0;
“鼠标键按下”事件添加“脚本编辑器”行为,代码如下:
//创建一个计时器

CreateTimer("EventActor", "timer1", 20);

使用计时器事件选择“timer1”添加脚本编辑器行为,来实现图片的旋转。详细了解请查阅4.1.2.7代码如下
double i, j;
//20ms区域缩小原来的十分之一,逆时针旋转90
dZoom -= 0.1;
dAngle = (dAngle + 90);

RotoZoomActor("Event Actor", dAngle, dZoom, dZoom,true);

//当灰太狼小的看不见的时候,摧毁原来的灰太狼,在屏幕上随机位置创建一只灰太狼并且停止原有计时器
if( dZoom <= 0.1 )
{

DestroyActor("EventActor");

i = rand(view.width);
j = rand(view.height);

CreateActor("target","stand_l", "", "", view.x + i, view.y + j, 1);

DestroyTimer("timer1");
}

接下来导出运行,就能射击灰太狼,把它打飞。

Demo下载地址:http://www.dongyo.cn/bbs/forum.php?mod=viewthread&tid=2440&extra=page%3D3%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline

原创粉丝点击