【问题标题】:capture sprite with all its children - cocos2d-x 3.2捕获精灵及其所有孩子 - cocos2d-x 3.2
【发布时间】:2014-12-02 17:31:52
【问题描述】:

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

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

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

我该怎么做?

谢谢!

ps:

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

nail_sprite 的子级包括用户在运行时绘制一些东西的层,所以我不能只拾取整个 draw_layer 我必须只捕获用户绘制的部分。

【问题讨论】:

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


    【解决方案1】:

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

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

    场景3:

    selectedNailSprite.addChild(otherSprite);
    

    场景1:

    selectedNailSprite.getChildren();
    

    返回 Scene1 后,您将拥有所有子对象的精灵。不要重新创建它,在场景之间共享它:)

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

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

    【讨论】:

    • 非常感谢!你拯救了我的一天。我也会在我的场景中发布答案。
    【解决方案2】:

    这是我根据@sortris first 方法实现的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多