cocos2d-x 笔记

可变数组用CCArray
 
格式化输出例如
char str[50] ={0}
int i = 50;
sprintf(str,"hello%d.png",i);
 
 
CCCA一个宏,先copy 再释放 

CCRANDOM_0_1  0~1的随机数
 
要用string还要在mk文件里面加上gnustl_static
 
CCRect::CCRectContainsPoint这个函数用来判断一个点是否在一个矩形范围内。我们就想用这个函数来判断当前触摸操作的这个点是否在当前node的范围内。
 
this->boundingBox() 方法获得了当前节点对象在父节点对象下的缩放之后的本地坐标大小,并且是用GL坐标系表示的。
 
 

CCLayerColor::initWithColor(ccc4(255,255,255,255)); //初始一个带颜色的层; ccc4:创建一个r,g,b,o(opacity:不透明度); 还有ccc3:r,g,b

CCDirector::shareDirector() //返回一个导演实例;方法 getWinSize获取游戏主题大小

CCSprite *player = CCSprite::create('path'); //创建一个精灵; 资源直接读取到Resources目录下;

CCRectMake(0,0,27,40) //返回一个矩形区域;

sprite->setPosition() 设置精灵的坐标

this->addChild()  //添加到舞台上,revomeChild()移除

ccp(int __X__,int __Y__) //返回一个坐标

rand()%X // 获得0-X的一个随机整数

CCMoveTo::create(时间,目标地点)  //创建一个直线移动路径

CCCallFuncN::create(this,callFuncN_selector(类名::函数名)) 创建一个回调函数

CCCallFunc中的回调函数不带参数, CCCallFuncN中的函数带一个参数 , CCCallFuncND中的函数带两个参数,第二个为任意类型;

sprite->runAction(CCSequence::create(动作1,动作2,,,NULL)) //让精灵运行一系列的动作

this->schedule(schedule_selector(类名:函数名),间隔时间) //设置定时器,固定间隔时间执行某个动作,相当于js和as中的setInterval, 如果不设置间隔时间,那么为每帧执行

virtual void ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); //再重载函数时候需要使用virtual,参数中需指明cocos2d::类,ccTouchesEnd为触摸事件

CCTouch *touch = (CCTouch*)pTouches->anyObject();  //获取触控点

CCPoint location = this->convertTouchToNodeSpace(touch); //获取触控点的坐标

CCPoint offset = ccpSub(坐标A,坐标B) // 获得两个坐标点的差值offset.x offset.y

sprite->release(); sprite = NuLL; //清空精灵变量

sprite->setTag(int X); //设置精灵的标签, getTag() 获取标签

CCArray::create(); //创建CC数组, addObject 

CCArray x->addObject(); //为数组添加变量, revomveObject 移除数组变量;

CCARRAY_FOREACH(CCArray,CCObject) // 迭代循环数组,CCObject需要先定义 CCObject *pobj = NULL;

CCSprite *projectile = (CCSprite*)pObject; //CCobject类型可进一步定义;

CCRect::CCRectIntersectRect(sprite1->boudingBox(),sprite2->boundingBox());  //矩形的碰撞检测

CocosDenshion::SimpleAudioEngine::shareEngine()->playerBackgroundMusic("path") //播放背景音乐, ->playerEffect()播放音效

CCLabelTTF:create(msg,字体,字号); //创建一个文字标签

CCDelayTime::create(3) //创建一个延迟3秒时间

CCDirector::sharedDirector()->replaceScene(gameOverScene); //场景切换;

Sprite->setRotation(cocosAngle); //设置角度 Degree

cpp文件中定义函数时,如果没有指明类名,那么将无法使用类的成员变量;

关于CCObject的retain(),是手动管理内存的方式,通过retain保持住对象的占用,使计数器+1,不会因为remove等操作而找不到变量地址;

sqrtf() //开方返回float类型

CCRotateTo::create(时间,目标角度) //旋转对象

do{}while(0)的用法在程序中大量使用,一个过程代码遇到跳出条件时则重新执行,保证了代码行的同步执行顺序;

CC_SYNTHESIZE(varType, varName, funName); //用于声明保护变量,然后可以通过getter和setter来操作变量;

CREATE_FUNC(funcname) //创建一个自己类的create方法;调用的类的init()方法;

一个头文件中的各个class结束时都要记得;结束符 // class1{}; class2{}; 注:在.cpp文件中不需要

(CCArray*)array -> objectAtIndex(索引) // 返回该索引的数组元素;

CCString::createWithFormat(格式化,变量,,) // 创建字符串;

static LevelManager *sharedInstance(void){  }  //单例模式, LevelManager::sharedInstance()->...

CCObject->autorelease() //使用new之后,调用autolease()我们就不必在去操作它的内存释放;

posted @ 2013-04-01 15:07  eeLee  阅读(609)  评论(0编辑  收藏  举报