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 ループを使用することです。1 つは X 位置、もう 1 つは Y 位置です。

于 2011-12-01T13:39:03.507 に答える
0

で行っているように、ボタンの垂直線を作成できます

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

CCMenu にすべての項目を追加し、垂直パディングを追加してメニューを配置します

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

[menu alignItemsVerticallyWithPadding:20.f];

menu.position = ccp(x,y);

列ごとに 1 つのメニューを作成し、その列のすべてのボタンをそのメニューに追加できます。CCMenu を配置するだけで済みます。メニュー内のアイテムの配置はルールに従います (たとえば、verticallyWithPadding)。

于 2011-12-01T09:28:34.123 に答える