我正在制作一个有下拉菜单的游戏。所以我希望菜单有一个背景图像,因为它现在是透明的。
//CCSMenu stethMenu
stethMenu->alignItemsInColumns(2,2,2);
stethMenu->setPosition(winsize.width/2,winsize.height/2);
stethMenu是我想拥有背景的菜单。我在CCSprite中有背景图像。我试图让精灵成为stethMenu的孩子,但是没有成功给了一个异常。
从头到尾的一个方法是让精灵成为当前图层的独立子项,并将其位置设置为与菜单相同的位置。我希望有一个更好的方法,这样我就不必每次位置变化时都将精灵的位置设置为菜单。
答案 0 :(得分:2)
我会考虑你所考虑的方法,即使用CCSprite作为CCLayer的子代,作为最忠实于cocos2d设计原则的解决方案。
但是,我建议将CCMenu添加为CCSprite的子级,而不是将CCSprite和CCMenu添加为CCLayer的独立子级。使用此方法,您实际上只需要更改CCSprite的位置,并且其所有子项将相对于它定位。
节点图如下所示:
答案 1 :(得分:0)
创建CCSprite并将其添加到CCMenu的父级,使背景精灵的z顺序小于CCMenu。