代码改变世界

[Cocos2d-x]CCSpriteFrameCache的使用

2013-12-15 22:44 by hellenism, 809 阅读, 0 推荐, 收藏, 编辑
摘要:文档:http://cocos2d.cocoachina.com/document/index/class?url=dc/dda/classcocos2d_1_1_c_c_sprite_frame_cache.html简单描述:CCSpriteFrameCache提供CCSpriteFrame的缓存,可以使用它创建动画,并且具有较高的效率。使用场景:需要创建帧动画时,可以使用CCSpriteFrameCache如何使用:1.把多张图片通过Zwoptex软件(http://zwoptexapp.com/),生成一张png图,并且创建生成对应的plist文件2.使用plist文件创建CCSprit 阅读全文

[Cocos2d-x]CCSpriteBatchNode的使用

2013-12-14 12:23 by hellenism, 411 阅读, 0 推荐, 收藏, 编辑
摘要:文档:http://cocos2d.cocoachina.com/document/index/class?url=dd/d95/classcocos2d_1_1_c_c_sprite_batch_node.html简单描述:使用CCSpriteBatchNode可以提供程序的效率。因为它使用同一个纹理渲染多个精灵,在Open GL调用draw方法时,只需一次渲染就可以完成一批精灵的渲染。使用场景:当同一层需要很多相同纹理创建一堆精灵时,考虑使用CCSpriteBatchNode,从而提高程序效率。可以把多个样式放到一张图中,通过显示不同的区域达到显示具体纹理区域的效果(没错,使用CCSpri 阅读全文

[Cocos2d-x]随机数

2013-12-13 11:38 by hellenism, 359 阅读, 0 推荐, 收藏, 编辑
摘要:Cocos2d-x为我们提供了生成随机数的宏:CCRANDOM_0_1()具体定义如下:/** @def CCRANDOM_0_1 returns a random float between 0 and 1 */#define CCRANDOM_0_1() ((float)rand()/RAND_MAX)但是发现它并不能满足我们的需求,一般情况下,我们都会需要其他范围的随机数,还是用最通用得方法比较适合rand() % MAXEx:获取0~100之间的整数:int random = rand() % 100;问题在于,每次启动程序,第一次获取到得数都是一样的。需要设置生成随机数的种子:sra 阅读全文

[Cocos2d-x]节点的尺寸大小

2013-12-13 10:53 by hellenism, 4403 阅读, 0 推荐, 收藏, 编辑
摘要:作为一个CCNode,本身没有大小而言,但是AddChild之后,便有了尺寸的概念。Cocos2d-x中对于一个节点的尺寸可以通过以下三个方法获取:CCSprite:getContentSize();获取精灵的逻辑尺寸。此值不受缩放变换影响。即setScale()方法不影响此值boundingBox().size;获取精灵的边框尺寸。此值受到缩放变换影响。getTexture()->getContentSizeInPixels();获取精灵的纹理的像素尺寸。像素点和逻辑点关系:逻辑点大小 = 像素大小/contentScaleEx: CCSize sizeByContentSize = 阅读全文

[Cocos2d-x]节点之间的相互通讯

2013-12-11 17:08 by hellenism, 541 阅读, 0 推荐, 收藏, 编辑
摘要:在做.NET开发时,对象之间的相互通讯一般使用事件(event)实现,事件概念是.NET对Delegate的封装。在Cocos2d-x开发过程中,对象之间的通讯刚开始时不知道如何实现,于是想到c++中的函数指针,蹩脚实现了之后发现,Cocos2d-x已经为我们提供了很多Delegate,我们只需要像声明event一样在类中定义所需的CCCallFunc,变可以实现节点之间的相互通讯。例子:class FirstLayer:public BaseLayer{public: //定义一个CCCallFunc属性 CC_SYNTHESIZE_RETAIN(CCCallFunc*, m_C... 阅读全文

[C++]函数指针与指针函数

2013-12-11 10:24 by hellenism, 364 阅读, 0 推荐, 收藏, 编辑
摘要:函数指针与指针函数,之前总是分不清,今天就好好把它两认认清楚。先从概念说起,简单是理解。函数指针:是指针。一个指向某一个函数入口地址的指针。指针函数:是函数。一个返回值是指针的函数。记忆:从语文的角度讲,这俩个概念的主语在后,定语在前。函数指针的主语是指针,而函数是指针的定语指针函数的主语是函数,指针是定语。如何声明和定义:声明一个函数指针分为两部:1.先声明一个你想指向的函数的原型returnValue FuncName(Arg1,Arg2.....);例如:double DoSomething(int nArg1,int nArg2);2.把函数原型中的函数名换成(*pf_FuncName 阅读全文

[Cocos2d-x]节点的生命周期

2013-12-10 22:21 by hellenism, 788 阅读, 0 推荐, 收藏, 编辑
摘要:清楚的知道一个对象的生命周期,在开发时候是非常必要的,对于自身定义并且创建的对象而言,它的生命周期是由程序员控制,但是对于coco2d-x中的节点,我们必须弄清它的生命周期,这样才能在开发中得心应手。使用工厂方法create创建的Node,都会调用init方法,所以节点被创建时它的方法调用顺序是:构造函数 -> init() -> onEnter()当一个Node从父Node中移除时:onExit() -> 析构函数注意:当Node重新被加入当前运行的Scene时,它的onEnter()方法会被再次调用,同理,移除Scene时,onExit()也将被再次调用所以根据需要,释放 阅读全文

[Xcode]使用target进行协同开发

2013-12-10 21:20 by hellenism, 382 阅读, 0 推荐, 收藏, 编辑
摘要:协同开发时候发现难免会因为某些条件宏导致上传到SVN的代码影响到其他同时,但是每一次去修很多条件编译也不是很方便,所以可以通过新建自己的target来控制product.一.创建自己的target:1.ADD TARGET.但是这样创建出来的是全新的Target,需要手动添加连接库的引用和头文件路径,很麻烦。2.复制原TARGET.右键原来的TARGET文件,选择"Duplicate",这样就会得到一份和原来配置一模一样的TARGET可以在自己的TARGET中选择需要加载什么Resources,需要编译哪些源文件,这样就可以生成自己的Production二.添加自己的条件编 阅读全文

[Cocos2d-x]布局与定位

2013-12-10 20:48 by hellenism, 594 阅读, 0 推荐, 收藏, 编辑
摘要:游戏中,精灵的位置由Position与AnchorPoint同时决定.Scene 锚点 (0,0) 不启用锚点CCNode锚点 (0,0) 不启用锚点CCLayer锚点 (0,0) 不启用锚点CCSprite 锚点(0.5,0.5) 启用锚点所以继承时需要注意,基类继承父类的锚点,一般情况下不要去修改默认锚点如果需要进行层的布局,时一般继承CCNode或者CCLayer使用CCNode作为层布局时需要注意,它没有ContentSzie,则需要在init中设置Node的尺寸,否则在使用过程中会无法得到这个“层”的尺寸,使用CCLayer做传统层的布局是最合理的,它的尺寸就是屏幕尺寸。唯一能挑的毛 阅读全文

[Cocos2d-x]创建项目

2013-12-08 11:22 by hellenism, 173 阅读, 0 推荐, 收藏, 编辑
摘要:从cocos2d-x 2.1.4之后,就不提供工程项目模板的安装文件了,我们只能手工修改以前的安装文件,让它连接最新的工程,但是这样很麻烦。我们可以使用python命令创建cocos2d-x项目步骤如下:cd 到cocosd-x-2.2.0/tools/project_creator下创建项目./create_project.py -project HelloWorld -package com.cocos2dx.HelloWorld -language cpp 阅读全文
上一页 1 ··· 8 9 10 11 12 13 下一页