转自:http://www.jb51.cc/article/p-pmrnxlkk-xy.html
游戏中经常会用到一些变换:
游戏中武器和角色在一个layer上,为了效率,会考虑将bullet,effect和 PhysicsParticle分别放到不用的层上,对应的层上使用batchnode来提高效率
武器和PhysicsParticleLauncher(粒子发射器)绑定,发射的时候,会向PhysicsParticleLayer的武器相同的位置上生成一个物理粒子特效
会经常用到convertToNodeSpace和convertToWorldSpace转换坐标
我们加三个sprite,r0,r1,r2,
r0的父节点是layer,父节点下坐标(0,100,100)
r1的父节点是r0,父节点下坐标(0,100)
r2的父节点是r1,父节点下坐标(0,20)
- boolHelloWorld::init()
- {
- //////////////////////////////
- //1.superinitfirst
- if(!Layer::init()){
- returnfalse;
- }
- //r0加入到根节点上(Layer)坐标(0,0)
- Sprite*r0=Sprite::create("data/pic/gun.png");
- r0->setAnchorPoint(Point(0.f,0.f));
- this->addChild(r0);
- //r1加入到r0上
- Sprite*r1=Sprite::create("data/pic/gun.png");
- r1->setAnchorPoint(Point(0.f,0.f));
- r1->setPosition(Point(100,0));
- r0->addChild(r1);
- //r2加入到r1上
- Sprite*r2=Sprite::create("data/pic/gun.png");
- r2->setAnchorPoint(Point(0.f,108); list-style:decimal-leading-zero outside; color:inherit; line-height:17.27272605895996px; margin:0px!important; padding:0px 3px 0px 10px!important"> r2->setPosition(Point(100,20));
- r1->addChild(r2);
- }
如何将r2的坐标转换为世界坐标?
如何将r2的坐标转换为r0的局部坐标?