Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,请注明来意。