PR

メニューを作る

Cocos Code IDEとLua言語を使ったサンプルコードと例文集です。

メニューを使うと複数の項目を配置してユーザーに選択をさせることができます。画像やラベルから複数の項目からなるメニューを作成します。メニュー項目には押された時に呼ばれるコールバック関数を指定することができます。

サンプルコード

プロジェクトの新規作成で作成されるGameScene.luaのGameScene.create()を下記のサンプルコードと書き換えます。 下記の画像をresディレクトリに加えておきます。

menu1.pngmenu1.png menu1_on.pngmenu1_on.png
menu2.pngmenu2.png menu2_on.pngmenu2_on.png

サンプルコードを実行するとメニューが画面に表示されます。

function GameScene.create()
    local scene = GameScene.new()
    local visibleSize = cc.Director:getInstance():getVisibleSize()

    -- メニュー選択時に呼ばれるコールバック関数
    local function menuCallback(tag)
        print(string.format("メニュー%dが押されました", tag))
    end

    -- 1つ目のメニュー項目
    local menuItem1 = cc.MenuItemImage:create("menu1.png", "menu1_on.png")
    menuItem1:setPosition(0, 30)
    menuItem1:setTag(1)
    menuItem1:registerScriptTapHandler(menuCallback)

    -- 2つ目のメニュー項目
    local menuItem2 = cc.MenuItemImage:create("menu2.png", "menu2_on.png")
    menuItem2:setPosition(0, -30)
    menuItem2:setTag(2)
    menuItem2:registerScriptTapHandler(menuCallback)

    -- メニュー項目からメニューを作成してシーンへ追加
    local menu = cc.Menu:create(menuItem1, menuItem2)
    menu:setPosition(visibleSize.width/2, visibleSize.height/2)
    scene:addChild(menu)

    return scene
end

ss_menu.png

メニューの例文

画像からメニュー項目を作成する

画像からメニュー項目を作成するにはMenuItemImageを使います。

local menuItem = cc.MenuItemImage:create("menu1.png", "menu1_on.png")

MenuItemImageクラス:create(normalImage, selectedImage, disabledImage)メソッド

メニュー項目を作成します。

  • (string) normalImage:通常時の画像ファイル名
  • (string) selectedImage:選択時の画像ファイル名
  • (string) disabledImage:無効時の画像ファイル名

ラベルからメニュー項目を作成する

ラベルからメニュー項目を作成するにはMenuItemLabelクラスを使います。

local label = cc.Label:createWithSystemFont("Menu Item","Arial",18)
local menuItem = cc.MenuItemLabel:create(label)

メニュー項目にコールバック関数を設定する

メニュー項目にコールバック関数を設定するにはメニュー項目のインスタンスに対してregisterScriptTapHandlerメソッドを使います。呼ばれるコールバック関数の引数にはタグ番号が入ります。

-- メニュー選択時に呼ばれるコールバック関数
function menuCallback(tag)
    print(string.format("メニュー%dが押されました", tag))
end

-- メニュー項目がタップされた時に呼ばれる関数を指定する
menuItem:registerScriptTapHandler(menuCallback)

メニュー項目からメニューを作成する

メニュー項目からメニューを作成するにはMenuクラスを使います。メニュー項目の数だけcreateの引数に渡します。

local menu = cc.Menu:create(menuItem1, menuItem2)
Copyright(C) 2014 - 2015 「Cocos Code IDEとLua言語でゲームを作る」逆引き辞典for Lua All rights Reserved.