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

图7-4-1

图7-4-2

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

图7-4-3

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

图7-4-4

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

图7-4-5

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

图7-4-6

图7-4-7

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

图7-4-8

图7-4-9

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

图7-4-10

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

图7-4-11

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

图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

添加背景图片:
点角色控件里的角色为工程添加一个角色,在属性列表里,改变属性名称。在动画设置里面添加“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

在“脚本编辑器”编辑区内写入:
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

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

图7-4-16

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

图7-4-17

图7-4-18

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

图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

内容为:
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

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-22

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

图7-4-23

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

图7-4-24

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

图7-4-25

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

图7-4-26

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

图7-4-27

如下图:

图7-4-28

图7-4-29

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

图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-31

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

图7-4-32

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

图7-4-33

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

图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);

转载于:https://www.cnblogs.com/mcgame/archive/2013/05/16/3081819.html

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

  1. WebGL入门(四十二)-使用(FBO)实现阴影效果

    使用(FBO)实现阴影效果 1. demo效果 2. 相关知识点 2.1 阴影如何产生 2.2 阴影实现原理 2.2.1 准备阴影贴图 2.2.2 阴影映射 2.2.3 马赫带消除 3. demo代码 ...

  2. c++ 小游戏_C/C++编程新手入门基础系列:俄罗斯方块小游戏制作源代码

    这篇文章主要为大家详细介绍了C语言实现俄罗斯方块小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph ...

  3. C/C++编程新手入门基础系列:俄罗斯方块小游戏制作源代码

    这篇文章主要为大家详细介绍了C语言实现俄罗斯方块小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph( ...

  4. Python爬虫新手入门教学(二十):爬取A站m3u8视频格式视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 前文内容 Python爬虫新手入门教学(一):爬取豆瓣电影排行信息 Python爬虫新手入门 ...

  5. 新手入门机器学习十大算法

    新手入门机器学习十大算法 2018年9月17日 磐石 TensorFlowNews, 机器学习 0 在机器学习的世界中,有一种被称为"无免费午餐"的定理. 它意在说明没有哪种算法能 ...

  6. 如何选择适合你的兴趣爱好(四十二),风筝

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第四十二讲--风筝.风筝是在纸鸢背上系上一条弓弦,或在纸鸢头部按一个风笛,当纸升空以后,强风通过笛,或者引起弓弦的 ...

  7. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  8. Oracle入门(十二)之SQL的DDL

    一.数据类型 Character 数据类型 Number 数据类型 Date 数据类型 Raw 和 Long Raw 数据类型 LOB 数据类型 注:Oracle数据类型详解 二.表 (1)创建表 c ...

  9. 大数据的过去、现在和未来:万字长文解读《大数据四十二条》

    这是傅一平的第314篇原创 "与数据同行"开通了微信群,现已汇聚了3500位小伙伴了,长按以下二维码发送"入群"后加入. 正文开始 它山之石可以攻玉,何宝宏博士 ...

  10. 左耳听风 第四十二周

    左耳听风 第四十二周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

最新文章

  1. 国家哀悼日网站变灰的样式
  2. Java数据结构和算法:HashMap的实现原理
  3. 设置UserAgent让电脑浏览器访问微信手机网站
  4. 使用 ABAP 控制 Android 原生应用
  5. 工厂模式(简单工厂、工厂方法、抽象工厂)
  6. hdu4965-Fast Matrix Calculation【矩阵乘法】
  7. 前端学习(2716):重读vue电商网站36之slot插槽使用
  8. Bootstrap-CL:按钮下拉菜单
  9. UNP Chapter 19 - 多播
  10. Hadoop下虚拟机的创建与克隆
  11. J2EE是技术还是平台还是框架? 什么是J2EE
  12. 数据包络分析-超效率模型
  13. 文件扩展名(后缀名)是什么?win10怎么显示扩展名?
  14. 专利分析的方法和流程
  15. 苏州优步高级车资费标准和奖励政策
  16. 三、外码、关系的完整性约束、关系代数
  17. 巧用键盘鼠标!打字更快—办公效率更好!
  18. ShaderToy的使用方法
  19. linux 键盘灯控制软件,LINUX下如何控制小键盘灯的亮和灭
  20. 4.25分享(贪心算法基础)

热门文章

  1. 设计模式---抽象工厂模式(C++实现)
  2. c语言程序分数化简,C ++中的简化分数
  3. maven使用openjdk_openjdk8指定版本安装(maven指定版本安装)
  4. mininet编程实现交换机规则的插入、删除与修改。_三层以太网交换机基本原理及转发流程...
  5. python去重排序_python文本去重并排序
  6. MyBatis的XML配置文件(一)
  7. 【渝粤教育】电大中专跨境电子商务理论与实务 (30)作业 题库
  8. 【ICLR2020】Dream to Control:Learning Behaviors by Latent Imagination
  9. Qtcrreator 4 (Qt5.7) on rhel 7 x86_64 添加配置astyle,美化代码配置方法
  10. 基于K2 BPM的大型连锁企业开关店选址管理解决方案