Air for ios横版格斗过关项目技术整理
来源:互联网 发布:淘宝药店货到付款? 编辑:程序博客网 时间:2024/04/28 02:48
转自:http://bbs.9ria.com/thread-282323-1-1.html
关键字:starling citrus-engine nape物理引擎 横版格斗过关 孤影剑客
前言:作为as程序猿一枚,算算也有些时间了。回顾起进入游戏开发行业的缘由,可以追溯到小时候羡慕别人家的小霸王游戏机。“魂斗罗”,是“游戏”这个词给我的第一个印象。金庸武侠,对我这样一个伪文艺青年还是有强烈吸引力的。于是乎就有了这样一个项目。
个人qq:472313885渴求交流。
应网友要求,建立讨论群
孤影剑客技术交流QQ群:335463409
其中格斗的实现,打击感营造和关卡创建为重头。涉及一点角色动画控制逻辑和怪物AI。
捎带说些资源管理的东西。有些实现的很二,希望能有人一块儿讨论,多多指正。
一:项目简介
名字:“孤影剑客--书剑篇”
平台:ios
类型:横版格斗过关
操作:虚拟摇杆加屏幕按钮
Apple store下载链接:
https://itunes.apple.com/us/app/gu-ying-jian-ke/id726049617?ls=1&mt=8二维码下载
截图:
二技术整理
(一)概述
1.框架:修改的puremvc
2渲染部分用starling 1.4版本
http://gamua.com/starling/
为方便使用,引入的库为优化过的Starling整合包
https://github.com/zmLiu/StarlingFeathers该库由天地会里的zmLiu同志提供。该同志介绍他的整合包帖子:
http://bbs.9ria.com/thread-202852-1-1.html
平台引擎:
http://citrusengine.com/
为方便使用删除原项目包的部分代码,只保留starling和nape的部分。个人觉得该引擎很好用,提供了一堆平台游戏会用到的功能。镜头控制,角色控制,平台环境,Tiled 地图支持等非常实用。大家可以看看他的demo里一个模仿braid的例子。这个引擎提供了对box2d和nape物理引擎的支持。个人觉得nape比较好用。可能因为比较喜欢它的代码风格吧。
Nape官网
http://napephys.com/samples.html看它的例子,略屌
4开发工具
Flashbuilder
Flash cs6
TexturePackerGUI:注意,不要使用Flash cs6自带的输出精灵表功能。优化的不好。
官方的Adobe gaming sdk :sdk 版本为4.0 发布时低于此版本的会被拒绝
Tiled:
http://www.mapeditor.org/
和citrus-engine配合使用可用来做关卡编辑器。后面一章会详细描述
三:资源管理和像素级碰撞检测
视图资源用的是ATF格式。关于ATF,这里不细说,自己解决。
资源管理需要用到starling的AssetManager这个类
在视图层做一个方便获取资源名的方法,便于视图显示
(1)资源加载
策略是公用的预先加载,到那个关卡,加载哪个关卡特有的资源。
这里的资源指特效、角色资源、关卡地图。为了做到到哪一关卡加载哪一关卡的资源,做一个配置表。
大概类似这样:
需要登记该关卡的所有非公用资源。下一个关卡如果和上一个关卡资源有重合也要登记。原因是,无法预知玩家从那一关卡开始玩。加载时判断一下就行,已经加载的不用重复加载。
(2)像素级碰撞检测
格斗游戏碰撞检测用的很多,很多逻辑是基于碰撞检测的。关于角色的碰撞检测,在格斗的实现一节里详细说明。这里只说技术实现。Starling的像素级碰撞,没找到好的解决方法。
在加上角色的碰撞检测区域基本上独立与角色动作资源,所以另外做png格式的碰撞区图片。加到原生层,用bitmapdata的碰撞检测。
推荐使用HitTest.complexHitTestObject这个第三方类库的方法。比较高效。检测两个flash.display.DisplayObject的碰撞。很容易理解。
我的png图片也是用TexturePackerGUI打成一张大图的,这样做减少加载时间
这段代码获取需要的bitmapdata
四:关卡编辑
(1)概述
关卡要素包括玩家控制的角色,一般敌人角色,关卡boss,关卡可互动元素(陷阱,梯子,机关等),要能够做到以组件的方式提供给关卡编辑器。这样设计关卡的时候就可以不用费精力考虑关卡要素的内部实现。也在后期能够以高效率迭代关卡设计。要做的这一点,关卡要素的实现要封装好。
(2)关卡编辑器
关卡编辑器用前面提到的Tiled。这是个使用相当广泛的地图编辑器,有良好的框架支持。Cocos2d-x和 starling都有对.tmx格式地图文件支持的实现。
下面贴一张图来说明
黑色的部分就是关卡地图可是部分,具体怎么实现,找下Tiled使用教程。
Citrus-Engine的demo也有Tiled做的地图,比我这个详细。
然后在显示层上面布一层平台。关于平台的概念,参看Citrus-Engine的demo。
最后布局关卡可控元素(角色,敌人等)
一般的巡逻敌人还可以设置巡逻范围等属性,见下图所示
(3)地图解析
地图编辑器输出.tmx格式文件
.tmx解析使用是Citrus-Engine自带的类库。参看他的demo。要注意的是,tmx地图单元设置的是32*32的,地图移动时显示一个像素的空白,可以提供33*33的地图瓦片。解决此问题
五:格斗及打击感
重头戏来了
打击感是个比较棘手的问题。几乎是一个格斗游戏的意义所在。
首先,打击感是个感觉的东西,是一些列要素的集合:操作流畅度,打击反馈,被打击反馈,音效,震飞效果,屏幕震动,视觉特效等等。高级一点的可以做基于物理的碰撞等。
我试图通过总结自己的项目经验来抛砖引玉,说说这个项目是怎么做的。
- Air for ios横版格斗过关项目技术整理
- Air for ios横版格斗过关项目技术整理
- 如何制作一个横版格斗过关游戏 Cocos2d-x
- 如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4
- 如何制作一个横版格斗过关游戏(2) Cocos2d-x 2.0.4
- 如何制作一个横版格斗过关游戏(一) Cocos2d-x 2.0.4
- 如何制作一个横版格斗过关游戏(二) Cocos2d-x 2.0.4
- 如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4
- 如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4
- Cocos2d-x 2.0.4 如何制作一个横版格斗过关游戏
- Cocos2d-x 2.0.4 如何制作一个横版格斗过关游戏(2)
- 如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4
- Cocos2d-x 2.0.4 如何制作一个横版格斗过关游戏
- Cocos2d-x 2.0.4 如何制作一个横版格斗过关游戏(2)
- 如何制作一个横版格斗过关游戏(2) Cocos2d-x 2.0.4
- 如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4
- 如何制作一个横版格斗过关游戏(2) Cocos2d-x 2.0.4 .
- 如何制作一个横版格斗过关游戏Cocos2d-x(2)
- 同一直线上最多的点的个数——Leetcode系列(三)
- openCV 鼠标在图像上框选目标---单目标和多目标
- LeetCode Sudoku Solver
- 十六进制转八进制
- Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(二)
- Air for ios横版格斗过关项目技术整理
- 数据结构-----中缀到后缀的转换
- MSI Plessey条形码
- 关于scanf和fgets连用
- PAT4-07. 修理牧场
- 清空了回收站的文件还能找回吗
- 获取json数据中某一特定键值
- Objective-C中@private、@protected、@public 解析
- jQuery formValidator