如何在cocos2d-x中将背景图像设置为CCMenu

时间:2013-07-05 16:43:21

标签: c++ cocos2d-x

我正在制作一个有下拉菜单的游戏。所以我希望菜单有一个背景图像,因为它现在是透明的。

//CCSMenu stethMenu
stethMenu->alignItemsInColumns(2,2,2);
stethMenu->setPosition(winsize.width/2,winsize.height/2);

stethMenu是我想拥有背景的菜单。我在CCSprite中有背景图像。我试图让精灵成为stethMenu的孩子,但是没有成功给了一个异常。

从头到尾的一个方法是让精灵成为当前图层的独立子项,并将其位置设置为与菜单相同的位置。我希望有一个更好的方法,这样我就不必每次位置变化时都将精灵的位置设置为菜单。

2 个答案:

答案 0 :(得分:2)

我会考虑你所考虑的方法,即使用CCSprite作为CCLayer的子代,作为最忠实于cocos2d设计原则的解决方案。

但是,我建议将CCMenu添加为CCSprite的子级,而不是将CCSprite和CCMenu添加为CCLayer的独立子级。使用此方法,您实际上只需要更改CCSprite的位置,并且其所有子项将相对于它定位。

节点图如下所示:

  • CCLayer
    • CCSprite
      • CCMenu
        • CCMenuItem
        • CCMenuItem
        • CCMenuItem
        • 等...

答案 1 :(得分:0)

创建CCSprite并将其添加到CCMenu的父级,使背景精灵的z顺序小于CCMenu。