2

で六角形グリッド ゲームを作成しようとしていますCocos2D-X。タッチに反応する必要があり、ユーザーが六角形に触れたときにいくつかのアニメーションとアクションをトリガーします。

これを達成するためのより良いアプローチはどれだろうと思っていました。を使用しCCTMXTiledMapて 16 進数のタイル マップを作成するか、自分で六角形のグリッドを描画しますか?

カスタム描画ソリューションでCCDrawNode、六角形を描画するより良い方法はありますか?

任意の提案をいただければ幸いです。

ここに画像の説明を入力

4

2 に答える 2

0

このコードを試してください -

CCMenu  *myMenu =   CCMenu::create();
    myMenu->setPosition(CCPointZero);
    this->addChild(myMenu);

    int leftMargin  =   20;
    int topMargin   =   500;

    int index   =   0;
    for (int i=0; i<5; i++) {
        leftMargin  =   150;
        if (i%2 != 0) {
            leftMargin  =   leftMargin-(100/2);
        }
        for (int j=0; j<5; j++) {


            CCMenuItemImage *hexImg =   CCMenuItemImage::create("hexagon_new.png", "hexagon_new.png", this, menu_selector(Hexagon::clickOnHex));
            hexImg->setRotation(90);
            hexImg->setPosition(ccp(leftMargin, topMargin));
            hexImg->setTag(index);
            hexImg->setScale(115/hexImg->getContentSize().width);
            myMenu->addChild(hexImg);
            index++;
            leftMargin  += 100;
        }
        topMargin   -=  82;
    }

ユーザータッチで六角形のアニメーションを行う機能は -

void Hexagon::clickOnHex(CCObject *sender){
    CCMenuItemImage *tempHex    =   (CCMenuItemImage *)sender;
    CCRotateBy *rotateBy        =   CCRotateBy::create(0.5, 360);
    tempHex->runAction(rotateBy);
    CCLOG("HEX CLICKED");
}

やりたいことをアニメーションにします。

これは私が使用した画像です。

六角形の画像

于 2014-03-19T06:29:23.720 に答える