码迷,mamicode.com
首页 > 其他好文 > 详细

关于Cocos2d-x中节点和精灵的关系以及初始化

时间:2016-07-30 16:32:46      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

1.每一个对象类都有一个自己public的一个create函数(等价于CREATE_FUNC),和init函数。

2.create函数返回的是自身的类型,init函数是在ceate函数被调用的时候自动调用。

3.如果是场景对象类的话,还要public一个 static cocos2d::Scene* createScene();的函数,返回值是Scene类型

 

 

如果我们要呈现一个会动的人

1.定义一个对象类,继承自Node

2.定义一个private的Sprite * sprite属性

3.在init函数中

Node::init();  //执行父类方法

 

//设置节点的大小,缩放,刚体大小
Size s = Size(44, 52);
setContentSize(s);
setPhysicsBody(PhysicsBody::createBox(s));
setScale(0.5);

 

//设置精灵的纹理,大小,缩放,位置
sprite = Sprite::create("s_1.png");
sprite->setContentSize(s);
sprite->setScale(0.5);
sprite->setPosition(22, 52);   //设置成和节点重合

 

//把精灵绑定到节点上去,精灵就变成了节点的子节点

this->addChild(sprite);

 

//执行动画

Animation * animation = Animation::create();
animation->addSpriteFrameWithFile("s_1.png");
animation->addSpriteFrameWithFile("s_2.png");
animation->addSpriteFrameWithFile("s_3.png");
animation->addSpriteFrameWithFile("s_4.png");
animation->addSpriteFrameWithFile("s_5.png");
animation->addSpriteFrameWithFile("s_6.png");
animation->setDelayPerUnit(0.1f);
animation->setRestoreOriginalFrame(true);
//设置动画型的动作
auto animate = Animate::create(animation);
sprite->runAction(RepeatForever::create(animate));

 

//设置刚体属性

getPhysicsBody()->setRotationEnable(false);
getPhysicsBody()->setContactTestBitmask(1);
return true;

 

4.当我们创建一个节点的时候,调用初始化方法,返回了一个包含执行着精灵动画的精灵子节点的节点,这就达到了我们想要的效果,而且我们对节点操作,它所包含的子节点精灵也会跟着移动

 

关于Cocos2d-x中节点和精灵的关系以及初始化

标签:

原文地址:http://www.cnblogs.com/HangZhe/p/5721129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!