大佬教程收集整理的这篇文章主要介绍了cocos2d-x中,多个精灵执行同样的动作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
简而言之:虽然是“同样”(从效果来说)的动作,但是每个精灵必须run不同的action对象
例如:需要三个精灵同时跑到一个点去,使用动作来完成。
//创建3个精灵 auto s1 = Sprite::create("CloseNormal.png"); auto s2 = Sprite::create("CloseNormal.png"); auto s3 = Sprite::create("CloseNormal.png"); //设置位置在屏幕左边1/4处,分上中下来放 s1->setPosition(Vec2(visibleSize.width * 0.25,visibleSize.height * 0.75)); s2->setPosition(Vec2(visibleSize.width * 0.25,visibleSize.height * 0.5)); s3->setPosition(Vec2(visibleSize.width * 0.25,visibleSize.height * 0.25)); //添加到层中显示 this->addChild(s1); this->addChild(s2); this->addChild(s3); //创建动作,移动到屏幕右边3/4处的中心位置 auto action = MoveTo::create(3,Vec2(visibleSize.width * 0.75,visibleSize.height * 0.5)); //三个精灵执行这个动作 s1->runAction(action); s2->runAction(action); s3->runAction(action);结果:只有s3跑到目的地,s1和s2都没动。
如图:
开始时:
运动结束:
因为三个精灵使用了同一个action对象。下面来修改一下,给每个精灵创建一个对象。
<pre name="code" class="cpp">//创建3个精灵 auto s1 = Sprite::create("CloseNormal.png"); auto s2 = Sprite::create("CloseNormal.png"); auto s3 = Sprite::create("CloseNormal.png"); //设置位置在屏幕左边1/4处,分上中下来放 s1->setPosition(Vec2(visibleSize.width * 0.25,visibleSize.height * 0.25)); //添加到层中显示 this->addChild(s1); this->addChild(s2); this->addChild(s3); //创建动作,移动到屏幕右边3/4处的中心位置 auto action1 = MoveTo::create(3,visibleSize.height * 0.5)); auto action2 = MoveTo::create(3,visibleSize.height * 0.5)); auto action3 = MoveTo::create(3,visibleSize.height * 0.5)); //三个精灵执行这个动作 s1->runAction(action1); s2->runAction(action2); s3->runAction(action3);开始的图和之前一样,结果如图(三个精灵都到达目的地):
以上是大佬教程为你收集整理的cocos2d-x中,多个精灵执行同样的动作全部内容,希望文章能够帮你解决cocos2d-x中,多个精灵执行同样的动作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。