Cocos2dx - C ++如何将子项添加到Sprite而不将它们堆叠在一起

时间:2016-08-03 02:21:03

标签: c++ cocos2d-x sprite

我是 Cocos2dx 的新手,我正在尝试创建名为&#34的投注游戏;摇动磁盘"。所以基本上,每当一个玩家把他的赌注放在一个大门口时,我想要显示一个代表玩家在该大门上下注的筹码。但是,对该门使用addChild()仅适用于第一次。在下面的图片中,我首先在门上添加一个红色芯片,然后在该门上添加另一个绿色芯片。

然而,在我看来,绿色芯片正好是在红色芯片的顶部。我试图让两个芯片彼此相邻,以便玩家可以看到他们已经在该门中放置了1个红色芯片和1个绿色芯片。

感谢您帮助我并度过了美好的一天。

Gatebet.png

2 个答案:

答案 0 :(得分:1)

cocos2d::MenuItem *menuItemWithImage01 = cocos2d::MenuItemImage::create("unselected_image01_filename.png", "selected_image_filename.png", CC_CALLBACK_1(Layer::Function, this));
cocos2d::MenuItem *menuItemWithImage02 = cocos2d::MenuItemImage::create("unselected_image02_filename.png", "selected_image_filename.png", CC_CALLBACK_1(Layer::Function, this));    
auto menu = new cocos2d::Menu(menuItemWithImage01 ,menuItemWithImage02 , NULL);
menu->alignItemsVertically();
this->addChild(menu);

这是未经测试的,但您可以使用图像创建菜单项,然后将它们添加到菜单中,并根据需要水平/垂直对齐菜单项。

因此,在您的情况下,只需将包含所有芯片的菜单添加到门中并在激活时将它们设置为可见?

答案 1 :(得分:0)

你需要偏移你添加一点点的每个精灵的位置,这样它们就不会完全覆盖在彼此之上。