MC新手入门(四十二)------ 愤怒小狗制作三

创建游戏角色
     我们打开mobileCreate软件,点【游戏设置】设置游戏的视图大小,如图:

7-4-1.png

图7-4-1

7-4-2.png

图7-4-2

     我们先创建一个游戏角色,点状态栏中的【创建角色】图标,创建角色,并在【角色管理】的基本属性内输入名字: “actPlayerDog”,类型:“Normal”
在【角色管理】里面,点击【角色控件】里面的【角色】按钮添加角色,在【角色面板】中可以看到如【图7-4-3】:

7-4-3.png

图7-4-3

注意:
有一些角色只有在需要时被创建使用,而不需要刚开始就被创建,否则会出现一些不必要的尴尬事件。譬如在愤怒的小狗中开始画面跑出一只小狗,这样就很唐突。然后击点“添加动画”在弹出框里点“打开文件”选择图片“animDogRun.png”“animDogSquat”,””dogSquOne”,” dogSquatTwo”,“animDogJump”, “dogJumpOne” ,“dogJumpTwo” ,“animDogSpin”。这样在界面就添加了一个完整的角色了。将小狗的帧数如【图7-4-4】设置:

7-4-4.png

图7-4-4

    也许你会不明白为何要这样设置,由于动画是8个横向帧组成的一组动画,所以将其设置为8帧,纵向帧是1帧。帧速率是指动画播放的速度。如果想动画播放得快一些值就设置大一点。反之是慢速度。     

7-4-5.png

图7-4-5

以下四张图都是动画序列,是编辑动画产生的。
“dogSquatOne”(图7-4-6),“dogSquatTwo”(图7-4-7)都是由“animDogJump”的动画编辑而来。

7-4-6.png

图7-4-6

7-4-7.png

图7-4-7

“dogJumpOne”(图7-4-8) ,“dogJumpTwo”(图7-4-9)都是由“animDogSquat”的动画编辑而来。

7-4-8.png

图7-4-8

7-4-9.png

图7-4-9

为“actPlayerDog”增加“角色绘制”,“动画结束”,“物体碰撞”事件。
1.“角色绘制”的脚本编辑器行为中,添加代码如下:
MoveHorizon();
jumpChangeAnimation();
2.“动画结束”的三个“改变动画”行为中改变动画
第一个设置是动画(dogJumpOne)完成事件改变完成执行动作(改变动画)设置执行角色的角色:actPlayerDog,动画名称:dogSquatOne,播放动画的方式:停止如下图:

7-4-10.png

图7-4-10

第二个设置是动画(dogJumpTwo)完成事件改变完成执行动作(Change Animation)设置执行角色的角色:actPlayerDog,动画名称:animDogRun,播放动画的方式:向前.
如下图:

7-4-11.png

图7-4-11

第三个设置是动画(dogJumpTwo)完成事件改变完成执行动作(Change Animation)设置执行角色的角色:actPlayerDog,动画名称:dogJumpTwo,播放动画的方式:停止 如下图:

7-4-12.png

图7-4-12

3.“物体碰撞”的脚本编辑器行为中,添加代码调用第一关的函数。
代码如下:
PhysicalResponse(MOVE_EVENT_ACTOR_ONLY, USE_CALCULATED_MASS, 1.0, 1.0, 0.0, 0.0);
        if(i_CollisionChangeTwo == 0)
        {
ChangeAnimation("player_dog", "AD_animation_dog_run1", FORWARD);
i_CollisionChangeTwo +=1;
        }
        DoubleXVelocity(-7.0, -1.0, 0.0);
        i_MouseDown = 0;
猫:
经过以上详细的讲解,以相同的方法,来添加猫的角色我想不是问题。
1.创建“actPlayerCat”角色,增加动画“animCatRun”,“animCatBack”两张动画。
2.添加“Collision Finish”事件,的“Destroy Actor”行为。销毁角色 “Event Actor”

7-4-13.png

图7-4-13

添加背景图片:
点角色控件里的角色为工程添加一个角色,在属性列表里,改变属性名称。在动画设置里面添加“actBgLevelOne”图片作为背景图片。
1.添加“创建角色”事件,在“脚本编辑器”中添加如下代码:
        i_level = 1;
CreateActor("hint_bone", "hintbone", "", "", 0, -140, true);
2.添加“角色绘制”事件,在“脚本编辑器”中添加如下代码:
        i_level = 1;
CreateActor("hint_bone", "hintbone", "", "", 0, -140, true);
2.添加“Draw Actor”事件,在“Script Editor”中添加如下代码:
        if(player_cat.x - player_dog.x <= 100 && catExist == 0 && i_MouseFront ==0)
        {
DoubleXVelocity(-9.0, 0.0, 0.0);
        }
        if(bg_levelOne.xscreen <= -2000)
{
EventDisable("area_UpClick", EVENTALL);
EventDisable("area_FrontClick", EVENTALL);
EventDisable("area_DownClick", EVENTALL);
DestroyLevelOne();
CreatepassFrame();   
}
添加障碍物:
1. 创建“actPlayRemOneP”角色,添加“animRock”图片
创建“actPlayRemOne” 角色,添加“animRock” 图片,添加碰撞事件“脚本编辑器” 添加事件。

7-4-14.png

图7-4-14

在“脚本编辑器”编辑区内写入:
DestroyActor("Event Actor");
ChangeAnimation("player_dog", "AD_animation_dog_zhuang", FORWARD);
i_CollisionChange = 1;
//让角色的事件无效
EventDisable("area_UpClick", EVENTALL);
EventDisable("area_FrontClick", EVENTALL);
EventDisable("area_DownClick", EVENTALL);
//给角色x轴上面设置速度
DoubleXVelocity(-8.0, -2.0, 0.0);
创建“actPlayerRemOneP2”角色,添加“animMow”图片
创建“actPlayerRemOneP2”角色,添加“animMow”图片,继承“actPlayerRemOne” 角色。

7-4-15.png

图7-4-15

        创建“actPlayRemTwo1”角色,添加“animBadDog”图片,添加Collision事件的(如下图)事件,

7-4-16.png

图7-4-16

创建“actPropBoneP”角色,添加“animBone”图片
创建“actPropBone”角色,添加“animBone”图片,添加“Collision”( actPlayerDog的任意边界)事件,的“ScriptEditor”添加代码:DestroyActor(“Event Actor”);
创建“actPlayRemOneP3”角色,添加“animGarbagecan”图片,
创建“actPlayRemOne3”角色,添加“animGarbagecan”图片,继承“actPlayRemOneP3” 角色。

7-4-17.png

图7-4-17

7-4-18.png

图7-4-18

创建“actPlayRemTree1”角色,添加“animTreeHole”图片
创建“actPlayRemTree2”角色,添加“animTreeTrunk”图片
为actPlayRemTree2添加碰撞时的脚本

7-4-19.png

图7-4-19

脚本内容如下:
if(i_MouseUp == 0)
{
DoubleXVelocity(0.0, 0.0, 5.0);
DestroyActor("area_FrontClick");
DestroyActor("area_UpClick");
DestroyActor("area_DownClick");
DestroyActor("area_GameOver");


if(i_hasHintFail == 0)
{
CreateActor("actHintFail", "animFail", "", "", view.x + view.width / 2, view.y + view.height / 2, true);
}
}
创建“actHintFail”角色,添加“animFail”图片
1. 
添加“创建角色”事件,“脚本编辑器”

    7-4-20.png

图7-4-20

内容为:
actPlayerDog.yvelocity = 0;
ChangeAnimation("actPlayerDog", "animDogSpin", FORWARD);
DestroyActor("player_remoraOneP");
remoraXVelocity(0);
i_hasHintFail = 1;
2.        添加“CreateActor” 对像的“Event Disable” 行为,禁止事件的角色名称:player_dog,事件名称:All Events.
如下图:

7-4-21.png

图7-4-21

3.        在“hint_fail”角色中添加“角色绘制”事件的“脚本编辑”行为。代码如下:
if(actPlayerDog.x < actHintFail.x - 150)
{
actPlayerDog.x += 6;
}
4.        添加“鼠标按下事件”事件。“脚本编辑”添加如下代码:
ExitGame();//退出游戏.
创建“prop_DrumstickP”角色,添加“drumstick”图片
创建“prop_Drumstick”角色,添加“drumstick”图片,再在“碰撞”事件中,添加行为“销毁角色”,碰撞角色actPlayerDog,碰撞条件:任何边沿,如图【7-4-23】

7-4-23.png

图7-4-22

创建“actPlayRemThree”角色,添加“animHydrant”图片,
添加“计时器”(如图【7-4-24】)。

7-4-24.png

图7-4-23

点确定后添加禁止事件的角色名和事件名称。

7-4-25.png

图7-4-24

添加“动画结束”事件的“改编动画”行为,

7-4-26.png

图7-4-25

改变“animHydrant”动画的播放动画的方式为“Stopped”。

7-4-27.png

图7-4-26

碰撞完成事件,启用player_dog角色的DrawActor行为。

7-4-28.png

图7-4-27

如下图:

7-4-29.png

图7-4-28

7-4-30.png

图7-4-29

添加“actStartTime”角色
1.        添加图片“animCountTime”,为角色添加“动画结束”事件,“销毁角色” 如下图

7-4-31.png

图7-4-30

2.  添加“创建角色”事件的“Script Editor” 行为,在代码编辑区域里写入:
            EventDisable("area_UpClick", EVENTALL);
            EventDisable("area_FrontClick", EVENTALL);
            EventDisable("area_DownClick", EVENTALL);
3. 
  添加“销毁角色”事件的“Script Editor”行为,在代码编辑区域里写入:
            DoubleXVelocity(-8.0, -1.0, 0.0);
            EventEnable("area_UpClick", EVENTALL);
            EventEnable("area_FrontClick", EVENTALL);
            EventEnable("area_DownClick", EVENTALL);
            if(i_level == 1)
           {
                  CARemoraOne();
            }
4. 
如图:现在我们了解一下如何实现两位主角的动作。
小狗(阿扁)的动作:

7-4-32.png

图7-4-31

1)   当玩家单击按住阿扁角色前方的水平区域,阿扁会加速奔跑,并与猫咪的距离逐渐缩短,当玩家松开之后,阿扁会用普通速度奔跑,与猫咪的距离越来越远2)   在点击阿扁水平区域以上的空间,阿扁会跳跃,连续点击,阿扁会完成连续跳跃。3)   在点击阿扁水平区域以下的空间,阿扁会下蹲移动,同时速度变慢。
添加角色,特别注意类型一定是 “area_UpClick”, “area_FrontClick”, ”area_DownClick”分别是中跳,加速,下趴的触发区域。
大灰猫的动作:
1)  
当狗处于红色区域后,猫会回头嘲笑以示警告。
2)  
狗处于绿色区域是,猫咪处于奔跑状态。
3) 
  当狗处于绿色区域右侧的边缘时,猫咪会加速,与玩家始终保持一段距离。
4)  
当狗碰撞到最左侧边界后,玩家失败,播放狗死亡动画,停止已有动画,唯独猫从右侧移动出画面。
创建两个出发区域:

分别命名为area_OverHint和area_GameOver
为area_OverHint 添加物体碰撞时的事件——改变动画
并做如下设置

7-4-33.png

图7-4-32

为area_GameOver 添加动画结束时的事件——改变动画
并做如下设置

7-4-34.png

图7-4-33

为area_GameOver 添加物体碰撞时的事件——脚本编辑器

7-4-35.png

图7-4-34


输入如下代码:
           DoubleXVelocity(0.0, 0.0, 5.0);
           DestroyActor("area_FrontClick");
           DestroyActor("area_UpClick");
           DestroyActor("area_DownClick");
           DestroyActor("area_GameOver");
           EventDisable("actPlayerDog", EVENTCOLLISION);
           CreateActor("actHintFail", "animFail", "", "", view.x + view.width / 2, view.y + view.height / 2, true);

posted @ 2013-05-16 14:43  zj_king  阅读(230)  评论(0编辑  收藏  举报