Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 捕获sprite及其所有子项-cocos2d-x 3.2_C++_Cocos2d X_Cocos2d X 3.0 - Fatal编程技术网

C++ 捕获sprite及其所有子项-cocos2d-x 3.2

C++ 捕获sprite及其所有子项-cocos2d-x 3.2,c++,cocos2d-x,cocos2d-x-3.0,C++,Cocos2d X,Cocos2d X 3.0,!![参考图片] 在screen1中,用户点击一个钉子,screen2显示用户在钉子上进行设计的地方(基本上在钉子上添加一些层),之后它看起来像screen3 现在我想要的是,当用户返回到屏幕1时,它应该会看到他在敲击钉子的地方设计的钉子 我该怎么做 谢谢 附言: 我尝试了nail_sprite->getTexture(),但它返回的只是nail sprite,而不是它的子对象 “钉子”精灵的子元素包括用户在运行时绘制某些东西的层,因此我不能只拾取整个绘制层,我必须只捕获用户绘制东西的部分。第一

!![参考图片]

在screen1中,用户点击一个钉子,screen2显示用户在钉子上进行设计的地方(基本上在钉子上添加一些层),之后它看起来像screen3

现在我想要的是,当用户返回到屏幕1时,它应该会看到他在敲击钉子的地方设计的钉子

我该怎么做

谢谢

附言:

我尝试了nail_sprite->getTexture(),但它返回的只是nail sprite,而不是它的子对象


“钉子”精灵的子元素包括用户在运行时绘制某些东西的层,因此我不能只拾取整个绘制层,我必须只捕获用户绘制东西的部分。

第一种方法是通过参数将选定的“钉子”精灵传递到下一个场景。因此,请在场景1中尝试:

var nailSprite1;
var nailSprite2;
var nailSprite3;
//and so...

var selectedNailSprite = nailSprite1;
场景3:

selectedNailSprite.addChild(otherSprite);
场景一:

selectedNailSprite.getChildren();
回到场景1后,您将与所有的孩子一起享用雪碧。不要重新创建,在场景之间共享:)

实现这一点的第二种方法是制作场景3中精灵的屏幕截图,并将其保存在设备上。接下来,可以在场景1中加载它


第三种方法是将nail的结构从Scene3保存为XML或其他格式,并将其加载到Scene1:D中

以下是我根据@sortris第一种方法的实现

我在parentLayer中创建了一个addLayer方法,当我在child中添加一个层时,我也调用parent方法。
对于stencil.drawDot,当我在子层中绘制节点时,我也通过调用drawDot的父方法在父精灵中绘制节点。

非常感谢!你救了我一天。我也会在我的场景中发布答案。