代码改变世界

随笔分类 -  [Cocos2d-x学习笔记]

[Cocos2d-x学习笔记]Android NDK: Host 'awk' tool is outdated. Please define NDK_HOST_AWK to point to Gawk or Nawk解决方案

2014-04-10 16:13 by hellenism, 1583 阅读, 收藏,
摘要: Android NDK: Host 'awk' tool is outdated. Please define NDK_HOST_AWK to point to Gawk or Nawkawk过期网上的解决方案是到awk所在目录下删除awk.环境:OS:windows 8cocos2dx版本:cocos2dx-2.1.5ndk版本:ndk-r9c我的方案是:发现引入的项目中定义了NDK_HOST_AWK环境变量,导致编译时候使用了awk来做一些处理,但是NDK从N8版本就开始自动Linux编译环境,所以无需引入其他辅助工具,也不需要使用cygwin来作为编译环境,只需要使用nd 阅读全文

[Cocos2d-x]解决Android平台ndk-build时不自动删除外部库

2014-02-12 16:13 by hellenism, 603 阅读, 收藏,
摘要: 参考链接:http://blog.chinaunix.net/uid-26009923-id-3430612.htmlhttp://hi.baidu.com/hpyfei/item/52a2b21213de23031994ec63做Cocos2d-x移植Android平台时候发现程序总是Crash,后来才发现,因为运行ndk-build时,libs/armeabi目录下的外部库被删除了,网上找到了解决方案,上文给出了原文链接此处贴出解决方案,以作记录:步骤如下:a. 在 jni目录下新建目录prebuilt(名字任意取)b. 将外部库libfoo_so.so libbar_so.so libf 阅读全文

[Cocos2d-x]Android的android.mk文件通用版本

2014-02-12 15:39 by hellenism, 766 阅读, 收藏,
摘要: 原文地址:http://blog.ready4go.com/blog/2013/10/12/update-android-dot-mk-with-local-src-files-and-local-c-includes/这个android.mk文件当时折腾我了许久,因为从来没做过android开发,要在短时间之内完成cocos2d-x的android平台移植对我来说还是比较困难的,需要去了解一些概念,理解一些机制,光这个makefile文件就让我蛋碎一地。最后找到上文的链接,作者已经写好了一个通用版本的makefile,在他的基础上做一定的修改终于达到了想要的效果,在此感谢原文作者!下面是an 阅读全文

[Cocos2d-x]Cocos2d-x开发中C++调用Object-c

2013-12-29 16:02 by hellenism, 254 阅读, 收藏,
摘要: 2013年12月29日简介:Cocos2d-x开发过程中,难免需要通过C++调用Object-C 阅读全文

[Cocos2d-x]Mac下运行HelloCpp For Android

2013-12-22 14:26 by hellenism, 689 阅读, 收藏,
摘要: 2013年12月22日一.简介:Mac下运行Cocos2d-x的samples和新建的HelloCocos2dx项目二.内容:环境:OS:mac OS X 10.9.1IDE:Android Developer ToolsBuild: v22.3.0-887826COCOS2D-X:cocos2d-x-2.2.11.ADT , import cocos2d-x的samples下的HelloCpp的proj.android2.编译 , 报错 "The import org.cocos2dx.lib cannot be resolved"3.解决The import org.c 阅读全文

[Cocos2d-x]坐标系

2013-12-18 15:53 by hellenism, 191 阅读, 收藏,
摘要: 时间:2013年12月18日15:33:05简介:介绍Cocos2d-x的坐标系1.OpenGL坐标系OpenGL坐标系原点在屏幕左下角x轴正方向向右y轴正方向向上2.屏幕坐标系原点在屏幕左上角x轴正方向向右y轴正方向向下CCTouch获取到的坐标,是屏幕坐标,可以使用CCDirector的ConverterToGL进行转换3.本地坐标系具体某节点的坐标系,每一个Node都有自己的本地坐标系。使用Node->setPosition()时候,它的参考坐标系是父节点的坐标系原点在屏幕左下角x轴正方向向右y轴正方向向下4.世界坐标系是一个概念性的坐标系,可以认为它是其他坐标系的参考坐标系,是整 阅读全文

[Cocos2d-x]博客推荐

2013-12-17 14:49 by hellenism, 184 阅读, 收藏,
摘要: 推荐一下大神们的博客:JackyStudio:http://blog.csdn.net/jackyvincefu/article/category/1591201/3老G的小屋:http://4137613.blog.51cto.com/4127613/d-1子龙山人:http://zilongshanren.com/cocos2d-x/http://www.cnblogs.com/zilongshanren/archive/2011/03/18/1988097.html无间落叶:http://blog.leafsoar.com/cocos2d-x///持续更新中 阅读全文

[Cocos2d-x]CCSpriteFrameCache的使用

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

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

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

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

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

[Cocos2d-x]布局与定位

2013-12-10 20:48 by hellenism, 613 阅读, 收藏,
摘要: 游戏中,精灵的位置由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, 183 阅读, 收藏,
摘要: 从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 阅读全文

[Cocos2d-x]代码段记录

2013-12-07 02:24 by hellenism, 261 阅读, 收藏,
摘要: 一些零碎的代码,便于以后查找1.添加动画 1 //添加动画帧 2 CCAnimation* animation = CCAnimation::create(); 3 for(int i = 1; iaddSpriteFrameWithFileName(imgsName); 8 } 9 animation->setDelayPerUnit(1.0f);10 animation->setRestoreOriginalFrame(true);11 animation->setLoop(-1);12 //使用动画帧创建动画13 CCAnimate* animate = CCAnima 阅读全文