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); } }
実行結果
動作環境
- CocosSharp.Forms v1.7.1
なお、本サンプルで使用している画像は、Googleが提供しているマテリアルアイコンです。
以下のサイトからダウンロードすることができます。
Icons - Material Design