0

我想要 cocos2d 中的关卡选择屏幕,就像在割绳子游戏中一样。没有任何滑动效果。

到目前为止我发现最有用的网站是“带有滚动的关卡选择屏幕

目前我正在使用以下内容获取菜单项但无法定位它们

for (int i=0; i<levelCount; i++) {

    item1 = [CCMenuItemImage itemFromNormalImage:@"levButton.png" selectedImage:@"levButton.png" target:self selector:@selector(playnow)];
    item1.tag = i;
    [levelMenu addChild:item1];

}
4

2 回答 2

1

如果您需要以网格方式放置您的项目,您可以这样做:

    int realIndex = 0;
    for (int x = 0; x < numberOfHorizontalItems; x++) {
        for (int y = 0; y < numberOfVerticalItems; y++) {
            item1 = [CCMenuItemImage itemFromNormalImage:@"levButton.png" selectedImage:@"levButton.png" target:self selector:@selector(playnow)];
            item1.tag = realIndex;
            item1.position = ccp(x * (item1.contentSize.width + 6),-(y * (item1.contentSize.height + 6)));
            [levelMenu addChild:item1];
            realIndex++;
        }
    }
    levelMenu.position = ccp(0,0)   //   <-- Adjust coordinates.

诀窍是使用 2 个 For 循环,一个用于 X 定位,另一个用于 Y 定位。

于 2011-12-01T13:39:03.507 回答
0

您可以创建一条垂直的按钮行,就像您正在做的那样

item1 = [CCMenuItemImage itemFromNormalImage:@"levButton.png" selectedImage:@"levButton.png" target:self 选择器:@selector(playnow)]

在 CCMenu 中添加所有项目,添加垂直填充并定位菜单

CCMenu *menu = [CCMenu menuWithItems:item1, item2, nil];

[菜单 alignItemsVerticallyWithPadding:20.f];

menu.position = ccp(x,y);

您可以为每列创建 1 个菜单,并在该菜单的该列中添加所有按钮。您只需要定位 CCMenu,菜单内的项目的定位遵循您的规则(例如verticallyWithPadding)

于 2011-12-01T09:28:34.123 回答