CocosSharpで画像ボタンを設置したい。

こんにちは、world_wide_anitoです。

CocosSharpでボタンを作成するには、CCMenuItemの継承クラスを利用するのが簡単です。
画像のボタンを作成するにはCCMenuItemImageクラス、テキストラベルのボタンを作成するにはCCMenuItemLabelクラスを使います。
そして、これらのクラスはCCMenuクラスの子ノードとしてAddしてやることで初めてボタンとしての機能を持つことができます。

以下のサンプルコードでは、画像のボタンを2つ作成してメニューを生成しています。
ボタンをタップするとタップされたボタンの絶対座標がコンソールに出力されます。

サンプルコード
        /// <summary>
        /// メニューを作成する
        /// </summary>
        /// <param name="layer"></param>
        private void CreateMenu(CCLayer layer)
        {
            // ボタン1を作成
            var sprite = new CCSprite("ic_check_white_24dp.png");
            var menuItem = new CCMenuItemImage(sprite);
            menuItem.Target = OnTapped; // ボタンがタップされたときの処理を設定

            // ボタン2を作成
            var sprite2 = new CCSprite("ic_close_white_24dp.png");
            var menuItem2 = new CCMenuItemImage(sprite2);
            menuItem2.Target = OnTapped; // ボタンがタップされたときの処理を設定

            // ボタンからメニューを生成
            var menu = new CCMenu(menuItem, menuItem2);
            menu.AlignItemsHorizontally(); // ボタンを横に並べる

            // レイヤーにメニューを設定
            layer.AddChild(menu);
        }

        /// <summary>
        /// ボタンがタップされたときの処理
        /// </summary>
        /// <param name="obj">タップされたボタン</param>
        private void OnTapped(object obj)
        {
            var item = obj as CCMenuItem;
            Console.WriteLine(item.PositionWorldspace);
        }
    }
実行結果

f:id:world_wide_anito:20180502031812p:plain:w320

動作環境
  • CocosSharp.Forms v1.7.1


なお、本サンプルで使用している画像は、Googleが提供しているマテリアルアイコンです。
以下のサイトからダウンロードすることができます。
Icons - Material Design