05 2014 档案
摘要:场景切换是通过导演类Director实现的,其中的相关函数如下:runWithScene(Scene* scene)。该函数可以运行场景。只能在启动第一个场景时候调用该函数。如果已经有一个场景运行情况下则不能调用该函数。replaceScene(Scene* scene)。切换到下一个场景。用一个新...
阅读全文
摘要:精灵帧缓存是缓存的一种,缓存有如下几种:纹理缓存(TextureCache)。使用纹理缓存可以创建纹理对象,在上一节我们已经用到了。精灵帧缓存(SpriteFrameCache)。能够从精灵表中创建精灵帧缓存,然后再从精灵帧缓存中获得精灵对象,反复使用精灵对象时候,使用精灵帧缓存可以节省内存消耗。动...
阅读全文
摘要:游戏是一种很耗费资源的应用,特别是在移动设备中的游戏,性能优化是非常重要的纹理图集(Texture Atlas)也称为精灵表(Sprite Sheet),它是把许多小的精灵图片组合到一张大图里面。使用纹理图集(或精灵表)有如下主要优点:减少文件读取次数,读取一张图片比读取一堆小文件要快。减少Open...
阅读全文
摘要:精灵类是Sprite,它的类图如下图所示:Sprite类直接继承了Node类,具有Node基本特征。此外,我们还可以看到Sprite类的派生类有:PhysicsSprite和Skin。PhysicsSprite是物理引擎精灵类,Skin是皮肤精灵类用于骨骼动画。使用纹理Texture2D对象创建Sp...
阅读全文
摘要:开关菜单是MenuItemToggle类实现的,它是一种可以进行两种状态切换的菜单。它可以通过下面的函数创建:[html]view plaincopystaticMenuItemToggle*createWithCallback(constccMenuCallback&callback,//菜单操作...
阅读全文
摘要:精灵菜单类是MenuItemSprite,图片菜单类是MenuItemImage。由于MenuItemImage继承于MenuItemSprite,所以图片菜单也属于精灵菜单。为什么叫精灵菜单呢?那是因为这些菜单项具有精灵的特点,我们可以让精灵动起来,具体使用时候是把一个精灵放置到菜单中作为菜单项。...
阅读全文
摘要:文本菜单是菜单项只是显示文本,文本菜单类包括了MenuItemLabel、MenuItemFont和MenuItemAtlasFont。MenuItemLabel是个抽象类,具体使用的时候是使用MenuItemFont和MenuItemAtlasFont两个类。文本菜单类MenuItemFont,它...
阅读全文
摘要:我们在Windows下使用Visual Studio 2012开发游戏的时候,使用标签中包含中文时候会出现乱码或无法显示,如下图所示:而应该显示的中文是如下图所示:HelloWorldScene.cpp中init函数如下:[html]view plaincopyboolHelloWorld::ini...
阅读全文
摘要:Cocos2d-x 3.0后推出了新的标签类Label,这种标签通过使用FreeType[1]来使它在不同的平台上有相同的视觉效果。由于使用更快的缓存代理,它的渲染也将更加快速。Label提供了描边和阴影等特性。Label类的类图如下图所示:创建Label类静态create函数常用的有如下几个:[h...
阅读全文
摘要:在Cocos2d-x中能够使用的字符串constchar*、std::string和cocos2d::__String等,其中const char*是C风格的字符串,std::string是C++风格的字符串,它封装了const char*。cocos2d::__String才是Cocos2d-x引...
阅读全文
摘要:在图形图像和游戏应用开发中坐标系是非常重要的,我们在Android和iOS等平台应用开发的时候使用的二维坐标系它的原点是在左上角的。而在Cocos2d-x坐标系中它原点是在左下角的,而且Cocos2d-x坐标系又可以分为:世界坐标和模型坐标。UI坐标UI坐标就是Android和iOS等应用开发的时候...
阅读全文
摘要:每一个游戏程序都有一个循环在不断运行,它是有导演对象来管理很维护。如果需要场景中的精灵运动起来,我们可以在游戏循环中使用定时器(Scheduler)对精灵等对象的运行进行调度。因为Node类封装了Scheduler类,所以我们也可以直接使用Node中调用函数。Node中调用函数主要有:void sc...
阅读全文
摘要:Node还有两个非常重要的属性:position和anchorPoint。position(位置)属性是Node对象的实际位置。position属性往往还要配合使用anchorPoint属性,为了将一个Node对象(标准矩形图形)精准的放置在屏幕某一个位置上,需要设置该矩形的锚点,anchorPoi...
阅读全文
摘要:Cocos2d-x采用层级(树形)结构管理场景、层、精灵、菜单、文本、地图和粒子系统等节点(Node)对象。一个场景包含了多个层,一个层又包含多个精灵、菜单、文本、地图和粒子系统等对象。层级结构中的节点可以是场景、层、精灵、菜单、文本、地图和粒子系统等任何对象。节点的层级结构这些节点有一个共同的父类...
阅读全文
摘要:Cocos2d-x中有很多概念,这些概念很多来源于动画、动漫和电影等行业,例如:导演、场景和层等概念,当然也有些有传统的游戏的概念。Cocos2d-x中核心概念:导演,场景,层,节点,精灵,菜单动作,效果,粒子运动,地图,物理引擎。下面我们介绍导演、场景、层、精灵、菜单概念以及对应的类,由于节点概念...
阅读全文
摘要:我们的编写的第一个程序一般习惯上都命名为HelloWorld,从它开始再学习其他的内容。下面介绍的第一个Cocos2d-x游戏我们也命名为HelloWorld。创建工程在Cocos2d-x早期版本中,创建工程是通过安装在Visual Studio中的工程模板而创建的,而目前创建工程Cocos2d-x...
阅读全文