调用一次addchild却添加了两次精灵

这真的就是全部代码
image
这是效果图
image
在this->setposition后出现异样,对于其他的添加精灵行为也都会这样,如果不调用this.setposition的话看起来没有异样,而且,对于动画,动作,parallax等等都会 一比一复刻,出现两个一摸一样的画面。
求解

init(), 好像是cocos2dx create里面会调用的函数,是不是你自己还手动调用了一次

虽然我没有调用两次init(),但我试了试确实create有关,我把createWithPhysics()注释后就没有这种异常了

试了很久,
在创建物理场景后Scene::createWithPhysics()

物理引擎中调用 this->setposition()就会出现上图的问题
无论是cocos2d-x 4.0 版本还是3.17
都会有这样的问题,具体是什么原理,就不得而知了

各位可以新建个helloworld试试
image
替换几条语句就可以看到这个bug

createWithPhysicscreate 应该只选一个吧
你为什么两个都调用了

要用物理引擎的话就是这样创建的

你要物理引擎,就直接使用 createWithPhysics 创建吧,下面那个create不要。一看就创建了2次

对,问题解决了,只能怪文档太落后且不齐全,物理世界的创建方法早就集成在Scene里面了,不需要额外创建Scene,但是网上的教程清一色在16年左右,早就落后了

忙活了一天,非常感谢你提供的思路,下午的时候真的把我搞自闭了

MainScene是Scene?还是Layer?
Scene::init()? Layer::init()?