捕捉所有孩子的精灵 - cocos2d-x 3.2

时间:2014-12-02 17:31:52

标签: c++ cocos2d-x cocos2d-x-3.0

![参考图片] http://imgur.com/a/G9Skz

在screen1中,用户点击指甲,屏幕2显示用户在指甲上进行设计(基本上在指甲上添加一些图层),之后它看起来像是screen3。

现在我想要的是当用户回到屏幕1时,应该看到他在他敲击的钉子处设计的钉子。

我该怎么做?

谢谢!

PS:

我试过nail_sprite-> getTexture(),但它只返回指甲精灵而不是它的孩子。

nail_sprite的子项包含用户在运行时绘制一些东西的层,所以我不能只拿起整个draw_layer我只需捕获部分用户绘制的东西。

2 个答案:

答案 0 :(得分:1)

第一种方法是通过参数将选定的精灵指甲传递给下一个场景。所以在Scene1中尝试这个:

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

var selectedNailSprite = nailSprite1;

Scene3:

selectedNailSprite.addChild(otherSprite);

场景1:

selectedNailSprite.getChildren();

并且在返回到Scene1之后,你将拥有所有孩子的精灵。不要重新创建它,在场景之间分享:)

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

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

答案 1 :(得分:0)

这是我根据@sortris第一种方法实现的。

我在parentLayer中创建了一个方法addLayer,当我在child中添加一个图层时我也调用了父方法。 如果是stencil.drawDot,当我在子图层中绘制一个节点时,我也通过调用parentDot的父方法在父Sprite中绘制一个节点。