CCNode节点类
CCNode节点类CCScene、CCLayer、CCSprite等类的基类,cocos2d-x框架中所有能够绘制,或能够容纳可以绘制的对象的对象就是CCNode的子类。
CCNode特点:
1,每个节点都可以包含子节点。
2,节点包含有周期性回调方法。
3,可以执行动作。
4,含有大量属性。
CCNode常用函数
节点相关:
addChild();
removeChildFromParent();
removeChild:();
getChildByTag();
动作
runAction();
stopAction();
stopAllActions();
stopActionByTag();
时间调度相关:
schedule();
scheduleUpdate();
unschedule();
CCNode常用属性:
座标:
锚点:
缩放系数:
标签:
二、座标与锚点;
座标 iOs平台提供两种标系,一种是屏幕座标系,另一种是openGL座标系。
cocos2d-引擎是基于OpenGL ES进行的图形渲染,是三维座标系,所以当x、y轴映射到手机屏幕上时,其座标系原点屏幕左下角。
座标运算:
CCPointExtension.h文件为我们提供了多种座标运算的方法;
ccpAdd(const CCpoint &v1,const CCPoint &v2); 将两个座标相加。
ccpSub(const CCPoint &v1,const CCPoint %v2); 将两相座标相减。
ccpDistance(const CCpoint &v1,const CCPoint &v2);计算两点间的直线距离。
ccpLength(const CCPoint &point);计算点与原点的直线距离。
锚点:
简单说就是一个节点相对于座标的参考点。
节点座标系;
1节点座标是指和某个特定节点相关联的座标系。
2和GL座标系也是一致的,x轴向右,y轴向上,但原点在父节点的左下角。
世界座标系:
1世界座标系是所有座标体系的参考标准,“世界”即指的游戏世界。
2世界座标系和GL座标系一致,原点在屏幕左下角,x轴向右,y轴向上。
座标系的转换;
节点座标系转换为世界座标系
CCPoint convertToWordSpace(const CCPoint &nodePoint);
世界座标系转换为节点座标系;
CCPoint convertToNodeSpace(const CCPoint worldPoint);
点.h文件
void update(float dt);
void myUpdate(float dt);
点.cpp文件
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
CCSprite *spr=CCSprite::create("Icon.png");
spr->setPosition(ccp(100, 300));
this->addChild(spr,0,1);//第二个参数是z轴的位置,第三个参数是个标签。
////3代表调用3次,1.0f代表第一次调用等多长时间,调用一次是0.5秒,1.0是中间间隔的时间。
schedule(schedule_selector(HelloWorld::myUpdate), 0.5f, 3, 1.0f);
scheduleUpdate();
return true;
}
void HelloWorld::myUpdate(float dt)
{
//this是层的对象。
//getChildByTag(1)通过标签得到节点。
CCSprite *spr=(CCSprite*)this->getChildByTag(1);
spr->setPosition(ccpAdd(spr->getPosition(), ccp(10, 0)));//getPosition() 精灵的当前位置。x+10.
}
void HelloWorld::update(float dt)
{
CCSprite *spr=(CCSprite*)this->getChildByTag(1);
spr->setPosition(ccpAdd(spr->getPosition(), ccp(1, 0)));
}