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

How to set a Background image to CCMenu in cocos2d-x

本文关键字:图像 设置 CCMenu 背景 cocos2d-x      更新时间:2023-10-16

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

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

stethMenu是我想要有背景的菜单。我有CCSprite的背景图像。我试着让精灵成为stethMenu的孩子,但这并没有起到任何作用。

我脑海中的一个方法是使精灵成为当前层的单独子对象,并将其位置设置为与菜单相同。我希望有一种更好的方法来做这件事,这样我就不必每次改变精灵的位置时都将其设置为与菜单相同的位置。

我认为您考虑的方法是使用CCSprite作为CCLayer的子级作为最忠实于cocos2d设计原则的解决方案。

但是,与其将CCSprite和CCMenu添加为CCLayer的独立子级,我建议将CCMenu作为CCSprite的子级添加。使用这种方法,你只需要有效地改变CCSprite的位置,它的所有子级都将相对于它定位。

节点图看起来是这样的:

  • CC层
    • CCSprite
      • CC菜单
        • CC菜单项
        • CC菜单项
        • CC菜单项
        • 等等

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