
Cocos2d-x
欣麒骥
软件工程师
展开
-
Cocos2d-x碰撞检查与消灭的实现
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" using namespace cocos2d; class HelloWorld : public cocos2d::CCLayerColor { public: /原创 2015-01-06 19:33:30 · 1195 阅读 · 0 评论 -
Overview
从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念。3.0中有以下相关接口:Director::getInstance()->getOpenGLView()->setDesignResolutionSize() //设计分辨率大小及模式Director::getIns翻译 2015-02-09 18:16:23 · 962 阅读 · 0 评论 -
ClippingNode的使用
概述ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中。ClippingNode 原理:ClippingNode是利用模板遮罩来完成对Node区域裁剪的技术。如何理解ClippingNode的遮罩翻译 2015-02-09 18:17:43 · 1020 阅读 · 0 评论 -
cocos2d::Map
v3.0 beta加入定义在"COCOS2DX_ROOT/cocos/base"的"CCMap.h"头文件中。template class CC_DLL Map;cocos2d::Map是使用std::unordered_map作为底层结构的关联式容器。 而std::unordered_map是一个存储键值对的关联式容器,它可以通过它们的键快速检索对应的值。 使用unor翻译 2015-02-09 18:19:18 · 1029 阅读 · 0 评论 -
CCArray
CCArray简介CCArray是cocos2d鼎力支持的数据结构类。它对游戏存储数组型数据做了优化。你可以在Cocos2d-x源文件目录cocos2d/support/ data_support里面找到CCArray的实现。CCArray在cocos2d内被使用广泛,它模拟了苹果NSMutableArray的功能,但是执行效率更高。CCArray是一个面向对象包装类翻译 2015-02-09 18:21:11 · 895 阅读 · 0 评论 -
CCDictionary
简介CCDirtionary使用UTHash实现的。老版本的CCMutableDictionary使用STL实现,但是已经被移除了。而且CCDictionary也是最近才被添加进来的。由于CCDictionary没有使用C++的模板特性了,因此可以轻松的绑定到script。关键字类型CCDictionary支持两种类型的关键字,一个是std::string,一个是int。一翻译 2015-02-09 18:22:02 · 1035 阅读 · 0 评论 -
cocos2d::Value
cocos2d::Value于v3.0beta加入定义在"COCOS2DX_ROOT/cocos/base"的头文件"CCValue.h"中class Value;cocos2d::Value是许多基本类型(int,float,double,bool,unsigned char,char*和std::string)还有std::vector, std::unorde翻译 2015-02-09 18:20:03 · 1200 阅读 · 0 评论 -
cocos2d::Vector
v3.0 beta加入定义在"COCOS2DX_ROOT/cocos/base"的"CCVector.h"头文件中。templateclass CC_DLL Vector;cocos2d::Vector是一个封装好的能动态增长顺序访问的容器。 cocos2d::Vector中的元素是按序存取的,它的低层实现数据结构是标准模版库中的标准顺序容器std::vector。翻译 2015-02-09 18:18:33 · 1448 阅读 · 0 评论 -
CCString
CCString简介CCString继承至CCObject,CCObjecte这个基类主要是为了自动内存管理而创建的。CCString提供一系列的接口,例如create,convert等等。常用的方法创建: /**使用std::string创建了一个字符串, 你也可以传递一个c字符串指针,因为std::string的构造函数可以访问c字符串指针翻译 2015-02-09 18:22:39 · 1083 阅读 · 0 评论 -
xml解析
Cocos2d-xCocos2d-x 已经加入了tinyxml2用于xml的解析。3.0版本位于external/tinyxml2下。2.x版本位于cocos2dx/support/tinyxml2下。tinyxml2 Github地址:https://github.com/leethomason/tinyxml2帮助文档地址:http://grinninglizard.c翻译 2015-02-09 18:23:45 · 859 阅读 · 0 评论 -
瓦片地图
在游戏开发过程中,我们会遇到超过屏幕大小的地图,例如即时战略游戏,使得玩家可以在地图中滚动游戏画面。这类游戏通常会有丰富的背景元素,如果直接使用背景图切换的方式,需要为每个不同的场景准备一张背景图,而且每个背景图都不小,这样会造成资源浪费。瓦片地图就是为了解决这问题而产生的。一张大的世界地图或者背景图可以由几种地形来表示,每种地形对应一张小的的图片,我们称这些小的地形图片为瓦片。把这些瓦片翻译 2015-02-07 14:04:42 · 2409 阅读 · 0 评论 -
场景转换(Transitions)
Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力。例如:淡入淡出,放大缩小,旋转,跳动等。从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果。场景之间通过TransitionScene系列类来实现过渡跳转的效果。TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类。如TransitionFadeDo翻译 2015-02-07 13:48:10 · 1422 阅读 · 0 评论 -
骨骼动画详解-Spine
游戏中人物的走动,跑动,攻击等动作是必不可少,实现它们的方法一般采用帧动画或者骨骼动画。帧动画与骨骼动画的区别在于:帧动画的每一帧都是角色特定姿势的一个快照,动画的流畅性和平滑效果都取决于帧数的多少。而骨骼动画则是把角色的各部分身体部件图片绑定到一根根互相作用连接的“骨头”上,通过控制这些骨骼的位置、旋转方向和放大缩小而生成的动画。它们需要的图片资源各不相同,如下分别是帧动画和骨骼翻译 2015-02-07 13:47:12 · 2039 阅读 · 0 评论 -
Cocos2d-x 3.0坐标系详解
Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。笛卡尔坐标系笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系。屏幕坐标系和Cocos2d坐标系标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系。iOS, Android, Windows翻译 2015-02-05 14:14:46 · 1045 阅读 · 0 评论 -
调度器(scheduler)
继承关系原理介绍Cocos2d-x调度器为游戏提供定时事件和定时调用服务。所有Node对象都知道如何调度和取消调度事件,使用调度器有几个好处:每当Node不再可见或已从场景中移除时,调度器会停止。Cocos2d-x暂停时,调度器也会停止。当Cocos2d-x重新开始时,调度器也会自动继续启动。Cocos2d-x封装了一个供各种不同平台使用的调度器,使用此调度器你不用翻译 2015-02-05 13:58:58 · 1228 阅读 · 0 评论 -
基础概念介绍——导演、场景、层、精灵
在Cocos2d-x-3.x引擎中,采用节点树形结构来管理游戏对象,一个游戏可以划分为不同的场景,一个场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏节点(即对象,游戏中基本上所有的类都派生于节点类Node)。可以执行Action来修改游戏节点的属性,使其移动、旋转、放大、缩小等等。每一个时刻都有一个场景在独立运行,通过切换不同的场景来完成一个游戏流程,游戏流程的管理由Direct翻译 2015-02-05 13:45:36 · 1601 阅读 · 0 评论 -
Cocos2d-x 3.2环境搭建
首先,打开终端cd到目录/cocos2d-x-3.2/tools/cocos2d-console/bin下,运行cocos.py脚本创建文件。[javascript] view plaincopy./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop原创 2015-02-06 10:02:13 · 1223 阅读 · 0 评论 -
动作
原理介绍动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作。动作作用于Node,因此每个动作都需要由Node对象执行。动作类(Action)作为基类,实际上是一个接口,动作类的大多数实现类都派生于有限时间动作类(FiniteTimeAction)。在实际开发中我们通常用到两类动作-即时动作和持续动作,它们均继承于有限时间动作类。即时动作即时翻译 2015-02-06 16:31:10 · 948 阅读 · 0 评论 -
粒子系统
简介粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸、烟花、水流)提供了方便。Cocos2d-x引擎中就为我们提供了强大的粒子系统,以下是粒子系统的继承关系图:粒子属性一个强大的粒子系统它必然具备了多种多样的属性,这样才能配置出多样的粒子。下面就来看看粒子系统的翻译 2015-02-07 13:49:52 · 1496 阅读 · 0 评论 -
如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
程序截图:本教程将会教大家如何使用Cocos2d-x来做一个基于tile地图的游戏,当然还有Tiled地图编辑器。(我们小时候玩的小霸王小学机里面的游戏,大部分都是基于tile地图的游戏,如坦克大战、冒险岛、吞食天地等)我们将会创建一个忍者在沙漠中找西瓜吃的小游戏。在第一部分教程中,我将教大家如何使用Tile来创建地图,怎样把地图加到游戏中,怎么让地图跟随玩转载 2015-02-07 14:10:00 · 1477 阅读 · 0 评论 -
Fast TileMap
概述在游戏中常常会有丰富的背景元素,如果直接使用大的背景图实现,这会造成资源浪费。TileMap就是为了解决这问题而产生的。Cocos2d-x支持使用Tile地图编辑器创建的TMX格式的地图。Cocos2d-x为我们提供了TMXTileMap和TMXLayer两个类来处理瓦片地图。通过使用TMXTileMap和TMXLayer,我们可以很方便的加载TMX格式的地图文件,获取地图上的翻译 2015-02-07 15:00:25 · 1622 阅读 · 0 评论 -
序列帧动画
简介Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果。动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。我们使用Animation类描述一个动画,而精灵显示动画的动作则是一个Animate对象。动画动作Animate是精灵显示动画的动作,它由一个动画对象创建翻译 2015-02-07 13:46:15 · 1317 阅读 · 0 评论 -
cocos2dx之如何优化内存使用
内存优化原则 为了优化应用内存,你应该知道是什么消耗了你应用的大部分内存,答案就是Texture(纹理)!它几乎占据了90%的应用内存。那么我们应该尽力去减小我们应用的纹理内存使用,否则我们的应用进程可能会被系统杀死。 为了减少内存警告,这里我们给出两个普遍的关于cocos2dx游戏内存优化的指导原则。1)了解瓶颈,然后解决掉 什么样的纹理消耗了大部分应用的内存呢?或者说这些纹理消耗了多少内存呢?原创 2015-02-03 09:48:00 · 1950 阅读 · 0 评论