摘要:
2013年12月29日简介:Cocos2d-x开发过程中,难免需要通过C++调用Object-C 阅读全文
随笔档案-2013年12月
[数据结构]基本概念
2013-12-23 17:50 by hellenism, 229 阅读, 收藏,
摘要:
2013年12月23日AUTHOR:STEPHEN LEE一.简介记录一些欲数据结构有关的概念二.内容1.数据:信息的载体,能被计算机识别,存储,加工2.数据逻辑结构:数据之间的逻辑关系。与存储方式无关,是独立于计算机的,可以看做是具体问题抽象出来的数学模型。分为两类:线性结构和非线性结构线性结构:只有一个开始结点和一个终端结点非线性结构:有多个开始结点和终端结点3.数据存储结构:是数据逻辑结构用计算机语言的实现。数据存储结构分为4种:顺序存储,链接存储,索引存储,哈希存储4.数据结构:研究数据元素之间的抽象关系和此抽象关系在计算机中的存储表示并定义其操作行为简单理解,数据结构的研究对象是:数 阅读全文
[Cocos2d-x]Mac下运行HelloCpp For Android
2013-12-22 14:26 by hellenism, 684 阅读, 收藏,
摘要:
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, 188 阅读, 收藏,
摘要:
时间: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.世界坐标系是一个概念性的坐标系,可以认为它是其他坐标系的参考坐标系,是整 阅读全文
[Android]mac下开发环境搭建
2013-12-18 11:13 by hellenism, 198 阅读, 收藏,
摘要:
好像没神马好些的?1.下载adt-bundle-mac-x86_64bit(http://developer.android.com/sdk/installing/bundle.html)2.解压,创建项目,一路next3.Run,又见Hello World 阅读全文
[Cocos2d-x]博客推荐
2013-12-17 14:49 by hellenism, 183 阅读, 收藏,
摘要:
推荐一下大神们的博客: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, 925 阅读, 收藏,
摘要:
文档: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, 420 阅读, 收藏,
摘要:
文档: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, 383 阅读, 收藏,
摘要:
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, 4504 阅读, 收藏,
摘要:
作为一个CCNode,本身没有大小而言,但是AddChild之后,便有了尺寸的概念。Cocos2d-x中对于一个节点的尺寸可以通过以下三个方法获取:CCSprite:getContentSize();获取精灵的逻辑尺寸。此值不受缩放变换影响。即setScale()方法不影响此值boundingBox().size;获取精灵的边框尺寸。此值受到缩放变换影响。getTexture()->getContentSizeInPixels();获取精灵的纹理的像素尺寸。像素点和逻辑点关系:逻辑点大小 = 像素大小/contentScaleEx: CCSize sizeByContentSize = 阅读全文
[Cocos2d-x]节点之间的相互通讯
2013-12-11 17:08 by hellenism, 567 阅读, 收藏,
摘要:
在做.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, 373 阅读, 收藏,
摘要:
函数指针与指针函数,之前总是分不清,今天就好好把它两认认清楚。先从概念说起,简单是理解。函数指针:是指针。一个指向某一个函数入口地址的指针。指针函数:是函数。一个返回值是指针的函数。记忆:从语文的角度讲,这俩个概念的主语在后,定语在前。函数指针的主语是指针,而函数是指针的定语指针函数的主语是函数,指针是定语。如何声明和定义:声明一个函数指针分为两部:1.先声明一个你想指向的函数的原型returnValue FuncName(Arg1,Arg2.....);例如:double DoSomething(int nArg1,int nArg2);2.把函数原型中的函数名换成(*pf_FuncName 阅读全文
[Cocos2d-x]节点的生命周期
2013-12-10 22:21 by hellenism, 814 阅读, 收藏,
摘要:
清楚的知道一个对象的生命周期,在开发时候是非常必要的,对于自身定义并且创建的对象而言,它的生命周期是由程序员控制,但是对于coco2d-x中的节点,我们必须弄清它的生命周期,这样才能在开发中得心应手。使用工厂方法create创建的Node,都会调用init方法,所以节点被创建时它的方法调用顺序是:构造函数 -> init() -> onEnter()当一个Node从父Node中移除时:onExit() -> 析构函数注意:当Node重新被加入当前运行的Scene时,它的onEnter()方法会被再次调用,同理,移除Scene时,onExit()也将被再次调用所以根据需要,释放 阅读全文
[Xcode]使用target进行协同开发
2013-12-10 21:20 by hellenism, 400 阅读, 收藏,
摘要:
协同开发时候发现难免会因为某些条件宏导致上传到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, 610 阅读, 收藏,
摘要:
游戏中,精灵的位置由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, 182 阅读, 收藏,
摘要:
从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 阅读全文
[Xcode]SVN的使用
2013-12-08 00:52 by hellenism, 368 阅读, 收藏,
摘要:
当发生冲突时:(p)postpone: -mark the conflict be resolved later保持冲突,手动修改源文件解决冲突(df)diff-full: -show all changes made to merged file显示冲突文件(e)edit: -change merged file in an editor使用编译器打开冲突文件(r)resolved: -accept merged file in an editor通知svn,此文件已经被解决(mf)mine-full: -accept my version of entrie file保存自己本地修改的拷贝 阅读全文
[Cocos2d-x]代码段记录
2013-12-07 02:24 by hellenism, 259 阅读, 收藏,
摘要:
一些零碎的代码,便于以后查找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 阅读全文
[C++]Hello C++
2013-12-07 02:09 by hellenism, 264 阅读, 收藏,
摘要:
最先进项目中需要用到C++做开发,所以开始学习C++,典型的眼高手低,刚开始觉得还算上手,之后越学越觉得复杂。相比C#,C++确实需要开发者投入更多的精力去设计与维护。以下是最近对C++开发的一些感受,记下它们,希望在今后的日子有所帮助。1.命名规范很重要。它能让代码具有很高的可读性,代码文档干净,统一一套统一的系统内部,确实需要重视命名规范,之前在Vistual Studio下进行C#开发,由于IDE的强大和对C#的熟练,没有养成良好的代码风格,如今在Xcode下才明白找不到变量的痛苦。2.基础知识必须过硬C++开发中,很多问题都出现的那么突然,只能根本出发,一步一步排除问题,这就要求对整个 阅读全文
浙公网安备 33010602011771号