【cocos2dx游戏开发技术精解-学习笔记(1)】游戏背景

来源:互联网 发布:最美古诗词 知乎 编辑:程序博客网 时间:2024/04/30 11:58

从今天起记录一下自己的读书学习历程。以前都在实验室的Confluence写,但后来因为经常上不去内网,干脆开博客写着玩。

++++++++++++++++++++++++++++++++++++++++++++++++格格吉祥+++++++++++++++++++++++++++++++++++++++++++++++++

尽管是第一篇,不过,由于我刚好看到第六章,所以就从第六章开始做笔记。刘剑卓老师这本书语言风格比较幽默,对于我这样的入门级的学习者来说,体验挺好。

1、游戏背景分类

(1)平面滚动型

(2)斜45°

(3)俯视类型

2、砖块地图TiledMap

2.1 这是什么玩意儿?

砖块地图最典型的例子就是坦克大战了,一张地图当中只有几个元素,然后通过重复这些元素来构成整个大图。这感觉就有点儿像金刚石,只有碳原子,按照足球那样的结构不断的组合起来,最后形成了致密的结构,但本质上也就是一个碳原子。

2.2 用代码写这个,你想累死我啊

别急,有编辑器。Tiled Map Editor是一款比较流行的编辑器。我自己用过一次,唯一感觉不爽的就是:每一个图层有且仅能有一张图片资源。也就是说,如果你的图层需要用到不同图片资源上面的图块,你只能用texturepacker之类的软件来拼合碎图。

具体怎么用,不写了,谷歌和百度更了解。

2.3 结果?

结果才是我们最关心的。其实tiled map editor这个工具会导出一个tmx格式的文件,其实就是一个xml格式的文件,里面存储了资源文件和最终的地图文件的坐标和对应关系。当然为了解析方便,工具对这些数据做了压缩,你可以在设置里面设定导出的压缩算法(也可以不压缩)。

2.4 怎么用?

2.4.1 地图

cocos2dx提供了一个类叫CCTMXTiledMap,这个类的创建就是以tmx路径为参数的,所以用起来很简单。

刚才说到tiledmap里面有个图层的概念,里面只能用来自一张图片资源的图块,然后我们在cocos2dx里面就看到了一个叫CCTMXLayer的类,这个类继承自CCSpriteBatchNode,并且只能用一张纹理图片作为精灵图集,哈哈,这俩还真是商量好的哈。

2.4.2 图层

我们知道cocos2dx 里面就是一种树状结构,一个节点,有子节点,子节点又有子节点。。。

上面提到的CCTMXTiledMap其实也是一个Node,而他的Layer也是Node,那么就可以像普通的CCLayer那样使用它们了。

2.4.3物体层

类名叫CCTMXObjectGroup。我看到这个的第一反应是碰撞检测,大概感觉就是 之前类似于《英雄坛说(我觉得这游戏开发者有日文背景,因为日语里面的“传”写作“伝”,哈哈,瞎扯的)》这样的游戏,地图上面有障碍,但也比较简单,就可以直接通过判断来进行碰撞检测。

所以如果你觉得某个东西有特别的用处的话,一定要放到物体层里面,而不要作为背景出现,不然的话就只能打了一桶好水给别人做衬托了。。


其实,我刚刚在想,刘老师在编书的时候用的是2.04版本的引擎,现在都2.2了。。


其实,我们大可不必担心这些,因为现在有了cocostudio这个强大的工具,这个工具也支持tmx的导入和解析,所以,直接用这个工具得了。

原创粉丝点击