
1. Cocos2d-x
文章平均质量分 63
梦幻DUO
游戏开发爱好者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Cocos2d-x Json读写
一、Json读取 1. 读文件字符串std::string data = FileUtils::getInstance()->getStringFromFile("test2.json");2.解析字符串Json::Reader reader;Json::Value root;reader.parse(data, root, false);3.访问内容log("id=%d", root["id原创 2016-07-09 11:50:34 · 1315 阅读 · 0 评论 -
Cocos2d-x 3.0数据结构——cocos2d::Vector
cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容器。 cocos2d::Vector<T>中的元素是按序存取的,它的低层实现数据结构是标准模版库中的标准顺序容器std::vector。 在Cocos2d-x v3.0 beta之前,使用的是另外一个顺序访问容器cocos2d::CCArray,不过它将会被废弃。模版参数T - 元素类型 T的类型必须是继承自cocos2d:原创 2016-07-14 07:50:14 · 720 阅读 · 0 评论 -
Cocos2d-x 3.0数据结构——cocos2d::Value
cocos2d::Value是许多基本类型(int,float,double,bool,unsigned char,char*和std::string)还有std::vector<Value>, std::unordered_map<std::string,Value>和std::unordered_map<int,Value>这些类的包装类型。你可以将上面提及的基本类放进cocos2d::Valu原创 2016-07-14 08:15:07 · 554 阅读 · 0 评论 -
Cocos2d-x 声音和音效
使用音效引擎我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎。CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引入他的头文件即可:#include "SimpleAudioEngine.h"由于SimpleAudioEngine是单例类,因此要这样取得该类对象:SimpleAudioEngine::getInstance()原创 2016-07-14 13:31:05 · 699 阅读 · 0 评论 -
Cocos2d-x 内存管理——引用计数
引用计数引用计数是c/c++项目中一种古老的内存管理方式。当我8年前在研究一款名叫TCPMP的开源项目的时候,引用计数就已经有了。在Cocos2d-x中克隆了一套CCAutoreleasePool。CCAutoreleasePool有两点需要注意:CCAutoreleasePool不能被开发者自己创建。Cocos2d-x会为我们每一个游戏创建一个自动释放池实例对象,游戏开发者不能新建自动释放池,仅原创 2016-07-14 13:41:11 · 826 阅读 · 0 评论 -
Cocos2d-x 纹理缓存(Texture Cache)
简介纹理缓存是将纹理缓存起来方便之后的绘制工作。每一个缓存的图像的大小,颜色和区域范围都是可以被修改的。这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU。CCTextureCache当你创建一个精灵,你一般会使用CCSprite::create(pszFileName)。假如你去看CCSprite::create(pszFileName)的实现方式,你将看到它将这个图片增加到纹理缓存原创 2016-07-14 15:08:39 · 735 阅读 · 0 评论 -
Cocos2d-x 如何优化内存使用
认识瓶颈寻找方案可用一些代码获取游戏内存使用的其他信息,如下所示: CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo();调用这个代码后,游戏便会在DEBUG模式运行,这时你会在Xcode控制台窗口看到一些格式工整的日志信息。 Cocos2d: cocos2d: “cc_fps_images” rc=5 id=3 256原创 2016-07-14 15:13:52 · 688 阅读 · 0 评论 -
Cocos2d-x 事件分发机制
新事件分发机制新事件分发机制:在新的事件分发机制中,只需通过创建一个事件监听器-用来实现各种触发后的逻辑,然后添加到事件分发器_eventDispatcher,所有事件监听器有这个分发器统一管理,即可完成事件响应。事件监听器有以下几种:触摸事件 (EventListenerTouch)键盘响应事件 (EventListenerKeyboard)鼠标响应事件 (EventListenerMous原创 2016-07-14 15:46:57 · 524 阅读 · 0 评论 -
Cocos2dx C++与Lua合并开发的VS配置环境搭建
去官方网站下载一个最新版的Cocos2d-x,运行setup.py来设置好环境变量后(前提你电脑要装好python来运行),然后看文件夹下面的Readme.md,里面会教你如何新建项目,如:cocos new MyGame -l lua这样就创建了一个Lua项目。编译完成后,可以进入打开新建项目里面的.sln后缀的文件,用VS2013来打开,编译成功可以运行。但是现在这个.sln只是C++工程,我们原创 2016-07-27 16:00:45 · 1836 阅读 · 0 评论 -
Cocos2d-x 3.0数据结构——cocos2d::Map
cocos2d::Map<K,V>是使用std::unordered_map作为底层结构的关联式容器。 而std::unordered_map是一个存储键值对的关联式容器,它可以通过它们的键快速检索对应的值。 使用unordered_map,键通常是唯一的,而值则与这个键对应。模版参数注意:使用现代的c++,本地存储对象比堆存储对象好。所以请不要用new操作来分配cocos2d::Map<K,V>的原创 2016-07-14 08:01:06 · 639 阅读 · 0 评论 -
Cocos2d-x 综述——API 风格
两阶段构造器及静态create()函数Cocos采用两阶段构造器是因为C++的构造函数没有返回值,我们想要知道一个对象是否正确构造,就添加一个create()函数,使用该函数来进行构造调用。 例如,我们经常会看到:auto layer = HelloWorld::create();而不是直接去调用HelloWorld的构造函数。至于这个create函数怎么写,Cocos已经写好一个CREATE_F原创 2016-07-13 19:58:12 · 678 阅读 · 0 评论 -
Cocos2d-x Lua基本操作
1.Lua库引用 目录添加: lua lua\luajit\includelib添加: lua51.lib;2.打开Lua库 示例:lua_State* pL = lua_open();luaopen_base(pL);luaopen_math(pL);luaopen_string(pL);3.读取Lua值/* 1.执行Lua脚本,返回0代表成功 */int err原创 2016-07-09 22:32:37 · 965 阅读 · 0 评论 -
Cocos2d-x 图像渲染和动画——裁剪(ClippingNode)
概述ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中。ClippingNode 常用方法create可以使用static ClippingNode* create();方法创建一个ClippingNode对象。如下:auto clip原创 2016-07-14 07:27:47 · 888 阅读 · 0 评论 -
Cocos2d-x 图像渲染和动画——粒子系统
简介粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸、烟花、水流)提供了方便。Cocos2d-x引擎中就为我们提供了强大的粒子系统,以下是粒子系统的继承关系图: 粒子属性主要属性:_duration 发射器生存时间,即它可以发射粒子的时间,注意这个时间和粒子生存时间不同。单位秒,-1表示永远原创 2016-07-14 07:09:22 · 1790 阅读 · 0 评论 -
Cocos2d-x 图像渲染和动画——场景转换(Transitions)
Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力。例如:淡入淡出,放大缩小,旋转,跳动等。从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果。场景之间通过TransitionScene系列类来实现过渡跳转的效果。TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类。如TransitionFadeDown、Tr原创 2016-07-13 22:21:15 · 675 阅读 · 0 评论 -
Cocos2d-x 图像渲染和动画——序列帧动画
创建方法手动添加序列帧到Animation类在创建Animation实例时会用到以下几个接口:addSpriteFrame,添加精灵帧到Animation实例setDelayUnits,设置每一帧持续时间,以秒为单位setRestoreOriginalFrame,设置是否在动画播放结束后恢复到第一帧clone,克隆一个该Animation实例 auto animation = Ani原创 2016-07-13 22:04:42 · 1960 阅读 · 0 评论 -
Cocos2d-x 图像渲染和动画——3.0坐标系详解
Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。笛卡尔坐标系笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系。屏幕坐标系和Cocos2d坐标系标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系。iOS, Android, Windows Phone等在开发应用时使用的是标准屏幕坐标系,原创 2016-07-13 21:17:34 · 664 阅读 · 0 评论 -
Cocos2d-x 基础概念——调度器(scheduler)
继承关系原理介绍Cocos2d-x调度器为游戏提供定时事件和定时调用服务。所有Node对象都知道如何调度和取消调度事件,使用调度器有几个好处:每当Node不再可见或已从场景中移除时,调度器会停止。Cocos2d-x暂停时,调度器也会停止。当Cocos2d-x重新开始时,调度器也会自动继续启动。Cocos2d-x封装了一个供各种不同平台使用的调度器,使用此调度器你不用关心和跟踪你所设定的定时对象原创 2016-07-13 20:38:09 · 828 阅读 · 0 评论 -
Cocos2d-x 基础概念——导演、场景、层、精灵
在Cocos2d-x-3.x引擎中,采用节点树形结构来管理游戏对象,一个游戏可以划分为不同的场景,一个场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏节点(即对象,游戏中基本上所有的类都派生于节点类Node)。可以执行Action来修改游戏节点的属性,使其移动、旋转、放大、缩小等等。每一个时刻都有一个场景在独立运行,通过切换不同的场景来完成一个游戏流程,游戏流程的管理由Director来执行原创 2016-07-13 20:26:32 · 1039 阅读 · 0 评论 -
Cocos2d-x 图像渲染和动画——动作
原理介绍动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作。动作作用于Node,因此每个动作都需要由Node对象执行。动作类(Action)作为基类,实际上是一个接口,动作类的大多数实现类都派生于有限时间动作类(FiniteTimeAction)。在实际开发中我们通常用到两类动作-即时动作和持续动作,它们均继承于有限时间动作类。 即时动作即时动作只能够立刻完成的动作,这类动作是在原创 2016-07-13 21:50:26 · 788 阅读 · 0 评论