标签:
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.当我们创建一个节点的时候,调用初始化方法,返回了一个包含执行着精灵动画的精灵子节点的节点,这就达到了我们想要的效果,而且我们对节点操作,它所包含的子节点精灵也会跟着移动
标签:
原文地址:http://www.cnblogs.com/HangZhe/p/5721129.html