随笔分类 - cocos官方教程
(28)Cocos2d-x xml解析
摘要:Cocos2d-x 已经加入了tinyxml2用于xml的解析。3.0版本位于external/tinyxml2下。2.x版本位于cocos2dx/support/tinyxml2下。 tinyxml2 Github地址:https://github.com/leethomason/tinyxml2
阅读全文
(27)Cocos2d-x 3.0 Json用法
摘要:Cocos2d-x 3.0 加入了rapidjson库用于json解析。位于external/json下。 rapidjson 项目地址:http://code.google.com/p/rapidjson/wiki:http://code.google.com/p/rapidjson/wiki/U
阅读全文
(26)SQLite集成与用法
摘要:概述 在Cocos2d-x中,简单数据存储,可以使用UserDefault。那么如何存储大量,不规则的数据?我们可以使用SQLite数据库存储数据。SQLite是使用非常广泛的嵌入式数据库,它有小巧 、高效、跨平台、开源免费和易操作的特点。 SQLite数据库是使用C语言来编写的,那么在Cocos2
阅读全文
(25)HttpClient session
摘要:session概述 session机制 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session
阅读全文
(24)如何使用HttpClient
摘要:介绍 HttpClient是HTTP客户端的接口。HttpClient封装了各种对象,处理cookies,身份认证,连接管理等。 概念 HttpClient的使用一般包含下面6个步骤: 创建 HttpRequest 的实例; 设置某种连接方法的类型(GET、POST等),这里通过setUrl传入待连
阅读全文
(23)事件分发机制
摘要:新事件分发机制:在2.x 版本事件处理时,将要触发的事件交给代理(delegate)处理,再通过实现代理里面的onTouchBegan等方法接收事件,最后完成事件的响应。而在新的事件分发机制中,只需通过创建一个事件监听器-用来实现各种触发后的逻辑,然后添加到事件分发器_eventDispatcher
阅读全文
(22)如何优化内存使用
摘要:如何优化内存使用 内存优化原理 为优化应用内存使用,开发人员首先应该知道什么最耗应用内存,答案就是纹理! 纹理几乎会占据90%应用内存。所以尽量最小化应用的纹理内存使用,否则应用很有可能会因为低内存而崩溃。 本文介绍Cocos2d-x游戏通用的两条内存优化原理指导。 认识瓶颈寻找方案 什么样的纹理最
阅读全文
(21)纹理缓存(Texture Cache)
摘要:简介 纹理缓存是将纹理缓存起来方便之后的绘制工作。每一个缓存的图像的大小,颜色和区域范围都是可以被修改的。这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU。 CCTextureCache Cocos2d通过调用CCTextureCache或者CCSpriteFrameCache来缓存
阅读全文
(20)Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
摘要:引用计数 引用计数是c/c++项目中一种古老的内存管理方式。当我8年前在研究一款名叫TCPMP的开源项目的时候,引用计数就已经有了。 iOS SDK把这项计数封装到了NSAutoreleasePool中。所以我们也在Cocos2d-x中克隆了一套CCAutoreleasePool。两者的用法基本上一
阅读全文
(19)声音与音效
摘要:声音和音效 Cocos2d-x提供了对声音和音效的支持,能够十分方便地实现音乐与音效的播放、暂停和循环功能。 使用音效引擎 我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎。CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引
阅读全文
(18)数据结构
摘要:cocos2d::Vector v3.0 beta加入 定义在"COCOS2DX_ROOT/cocos/base"的"CCVector.h"头文件中。 template<class T>class CC_DLL Vector; cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容
阅读全文
(17)ClippingNode的使用
摘要:概述 ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。 ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中。 ClippingNode 原理: ClippingNode是利用模板遮罩来
阅读全文
(16)Cocos2d-x 多分辨率适配完全解析
摘要:Overview 从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念。 3.0中有以下相关接口: Director::getInstance()->getOpenGLView()->
阅读全文
(15)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第三部分(完)
摘要:引言 程序截图: 在第二部分教程中,Ray教大家如何在地图中制作可碰撞的区域,如何使用tile属性,如何制作可以拾取的物品以及如何动态修改地图、如何使用“Heads up display”来显示分数。 在这个教程中,我们将加入敌人,这样的话,你的忍者就可以向它们扔飞镖啦,同时还增加了胜利和失败的游戏
阅读全文
(14)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第二部分
摘要:引言 程序截图: 这篇教程是《如何使用Cocos2d-x 3.0制作基于tilemap的游戏》的第二部分。在上一个教程中,我们创建了一个简单的基于tiled地图的游戏,里面有一个忍者在沙漠里寻找可口的西瓜! 在第一部分教程中,我们介绍了如何基于tiled创建地图,怎样把地图增加到游戏中去,以及如何滚
阅读全文
(13)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
摘要:引言 程序截图: 本教程将会教大家如何使用Cocos2d-x来做一个基于tile地图的游戏,当然还有Tiled地图编辑器。(我们小时候玩的小霸王小学机里面的游戏,大部分都是基于tile地图的游戏,如坦克大战、冒险岛、吞食天地等)我们将会创建一个忍者在沙漠中找西瓜吃的小游戏。 在第一部分教程中,我将教
阅读全文
(12)瓦片地图
摘要:在游戏开发过程中,我们会遇到超过屏幕大小的地图,例如即时战略游戏,使得玩家可以在地图中滚动游戏画面。这类游戏通常会有丰富的背景元素,如果直接使用背景图切换的方式,需要为每个不同的场景准备一张背景图,而且每个背景图都不小,这样会造成资源浪费。 瓦片地图就是为了解决这问题而产生的。一张大的世界地图或者背
阅读全文
(11)粒子系统
摘要:简介 粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸、烟花、水流)提供了方便。Cocos2d-x引擎中就为我们提供了强大的粒子系统,以下是粒子系统的继承关系图: 粒子属性 一个强大的粒子系统它
阅读全文
(10)场景转换(Transitions)
摘要:Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力。例如:淡入淡出,放大缩小,旋转,跳动等。从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果。 场景之间通过TransitionScene系列类来实现过渡跳转的效果。TransitionScene继承
阅读全文
(9)SpriteFrameCache和TextureCache
摘要:简介 SpriteFrameCache 主要服务于多张碎图合并出来的纹理图片。这种纹理在一张大图中包含了多张小图,直接通过TextureCache引用会有诸多不便,因而衍生出来精灵框帧的处理方式,即把截取好的纹理信息保存在一个精灵框帧内,精灵通过切换不同的框帧来显示出不同的图案。 SpriteFra
阅读全文