文档章节

CitrusEngine系列教程三:使用flash cs 设计关卡

clschen
 clschen
发布于 2013/05/07 19:20
字数 1172
阅读 82
收藏 0

教程出自 cls分享站

 

  1. CitrusEngine系列教程一:认识CitrusEngine

  2. CitrusEngine系列教程二:结合starling和Box2D开发游戏

  3. CitrusEngine系列教程三:使用flash cs 设计关卡

  4. CitrusEngine系列教程四:Citrus的2D动画和摄像头

  5. CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体

  6. CitrusEngine系列教程六:使用Tiled Map Editor创建地图

............................................................................


 

CitrusEngine支持很多关卡编辑器,可以通过swf或者xml快捷的实现布局,这意味着我们可以使用flash cs 来实现场景设计。现在就让我们来探讨一下如何用flash cs 来设计关卡(本教程源文件使用的是flash cs6 和flex4.7)。

首先CitrusEngine给我们提供了非常方便的 Components.fla(点击可以下载), 这个flash 文件使我们可以快速的创建基于box2d或nape的游戏场景。

打开Components.fla,我们可以看到库面板已经包含所有CitrusEngine基本的关卡组件20130507162152.jpg

我们只需要将其拉入舞台就可以实现非常快速的布局,下面是我做的简单布局:(使用Components.fla的时候最好将其重命名,我这里将其重命名为level.fla)

20130507162841.jpg

上面蓝色的是Hero,灰色是 Platform,粉红色的是RevolvingPlatform,黄色的是Coin。关于Hero,Platform和Coin我们已在之前的教程使用过,我就不介绍了。现在我简单介绍一下RevolvingPlatform。RevolvingPlatform继承与 Platform,可以理解为能围绕一个中心点旋转的Platform,现在我们通过flash cs的面板来对其进行一些设置旋转半径和速度做一些设置,当然宽高什么的也可以很方便在flash cs的属性面板设置

20130507180221.jpg

现在你就可以按 “ctrl+ enter”键调试swf,并将生成的swf拷贝到flex 的项目中使用了在本教程中,我将flash源文件和swf放在flex项目组的levels文件夹中。现在我们新建类Level,继承于StarlingState。将level映射到变量_level,设置objectsUsed,这样就只会导入游戏所必需的类。创建physics并添加到关卡中。使用ObjectMaker2D来从载入(Level.swf)的MovieClip中创建关卡。

  1. public class Level extends StarlingState
  2. {
  3. protected var level:MovieClip;//这里使用flash.display.MovieClip;
  4. public function Level(_level:MovieClip)
  5. {
  6. super();
  7. level=_level;
  8. var objectsUsed:Array=[Hero,Platform,RevolvingPlatform,Coin];
  9. }
  10. override public function initialize():void{
  11. super.initialize();
  12. var physics:Box2D=new Box2D("physics");
  13. physics.visible=true;
  14. add(physics);
  15. /*ObjectMaker是一个快捷批量创建多个CitrusObjects的工具类,
  16. 通常当你使用关卡编辑器或xml布局你的关卡的时候会使用这个类。*/
  17. ObjectMaker2D.FromMovieClip(level);
  18. } }
复制代码
然后我们在主类中加载swf并将其做为Level类的实例化参数。同时将level设置为主类的state。
  1. public function CitrusLevelEditor1()
  2. {
  3. setUpStarling(true);
  4. var loader:Loader=new Loader();
  5. loader.contentLoaderInfo.addEventListener(Event.COMPLETE,_levelLoaded);
  6. loader.load(new URLRequest(“../levels/level.swf”));
  7. }
  8. private function _levelLoaded(evt:Event):void{
  9. state=new Level(evt.target.loader.content);

  10. evt.target.removeEventListener(Event.COMPLETE,_levelLoaded);
  11. evt.target.loader.unloadAndStop();
  12. }
复制代码
现在你可以测试一下效果了,这时候你除了发现RevolvingPlatform在不停的围绕我们设置的参数旋转外,还会发现我们在flash中设计的只是游戏元素的box2d的刚体,并没有view显示对象。那么我们要怎么定义组件的view呢。这里提供两中方法:1.在flash中设置,flash属性面板中的组件参数有个view,我们可以直接填上图片的路径,不过需要注意的一点是,这个路径是相对于flex项目路径。如我们将hero的图片也放在levels文件夹下,那么我们需要这样填写hero的view 20130507172950.jpg  发现了吧,这时候路径与我们在主类中加载swf的路径是一致的
loader.load(new URLRequest(“../levels/level.swf”));

2.我们可以直接在level类内访问游戏元素并进行相关设置。要实现这个访问,我们需要在flash cs中给组件设置实例名,那么现在以地面为例进行设置吧:
20130507173527.jpg 
这样我们level中就可以用getObjectByName()方法方便的实现访问设置了
  1. var floor:Platform=getObjectByName("floor") as Platform;
  2. floor.view=new Quad(1024,30,0x000FF0)
复制代码


20130507183801.jpg 
那么这次教程就到这里吧,下期我们来用龙骨(Dragon Bones)来为我们的英雄创建流畅的动画 吧。最后温馨提醒大家,用这个方法布局关卡,在flex调试的时候如果发现于预期结果不一致,请清理一下项目再看看(项目-清理)。我在做这个教程的时候,就发生了第二次调试RevolvingPlatform的位置就会走位。还好导出效发行版的时候是正常的。


=> 去我的个人网站下载源码

© 著作权归作者所有

clschen
粉丝 4
博文 21
码字总数 10662
作品 1
广州
程序员
私信 提问
CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体

作者:cls分享站 目前已有教程: CitrusEngine系列教程一:认识CitrusEngine CitrusEngine系列教程二:结合starling和Box2D开发游戏 CitrusEngine系列教程三:使用flash cs 设计关卡 Citrus...

clschen
2013/05/15
187
0
CitrusEngine系列教程一:认识CitrusEngine

教程作者:cls分享站 CitrusEngine系列教程一:认识CitrusEngine CitrusEngine系列教程二:结合starling和Box2D开发游戏 CitrusEngine系列教程三:使用flash cs 设计关卡 CitrusEngine系列教...

clschen
2013/05/03
316
0
CitrusEngine系列教程二:结合starling和Box2D开发游戏

教程出自 cls分享站 CitrusEngine系列教程一:认识CitrusEngine CitrusEngine系列教程二:结合starling和Box2D开发游戏 CitrusEngine系列教程三:使用flash cs 设计关卡 CitrusEngine系列教程...

clschen
2013/05/05
361
0
CitrusEngine系列教程七:修改hero的默认动画(修改按键和增减动作)

作者:cls分享站 最近比较忙活,工作和家里都有些烦心的事情要处理,教程已经许久没更新了,感觉有点过不去啊。恰好今天有人问我如何修改hero默认按键和添加动画的问题,于是决定写一篇教程介...

clschen
2013/06/14
81
0
《魂斗罗归来》之状态模式VS策略模式

欢迎收看俗到掉渣的《小Y讲堂》节目,大家好,我是小Y,一个集性感毛发与才华于一身的程序猿。小Y的设计模式系列中的「状态模式」和「策略模式」都已经总结完成了,很多小伙伴都会凌乱在这两种...

YoungManSter
2017/11/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
43
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部