私はここMenuItemImageを持っている:選択したイメージの代わりにコールバック関数を使用してMenuItemImageを作成する方法はありますか?
auto myImage = MenuItemImage::create("image.png","image_selected.png",
CC_CALLBACK_1(HelloWorld::onImageClicked,this));
は、それは私がキーボードで私のメニュー内の項目間を移動する際に選択した上でimage_selected.png
に変更されます入力image.png
、私を許します。しかし、私は、myImage->selected();
(NOT)を選択すると、退屈なimage_selected.png
だけでなく、クリック/タッチまたはmyImage-> activate();機能を呼び出すことによって起動するいくつかのアクションを実行したいと思います。しかし、この方法は、物事が複雑に
keyBoardListener->onKeyPressed = [&](cocos2d::EventKeyboard::KeyCode keycode, Event* event)
{ // Setting up actions on KEY_RIGHT_ARROW or KEY_LEFT_ARROW pressed};
:
今、私は中にそれらの行動のすべてを設定することを考えています。したがって、myImage
が作成されているので、すべての行動を設定できる方法があるかどうかを尋ねたいと思います。そのような行動を単純な0で呼び出すか、後でmyImage->unselected()
で停止しますか? ご注意とヘルプは非常に高く評価されています
auto myImage = MenuItemImage::create("image.png", "image_selected.png", [&](Ref* ref){
//your code here
//by ref you can access "myImage" object
});
編集:
私はあなたが達成しようとしているかわからないんだけどD
こんにちは@Makalele、あなたの返信ありがとうございます。しかし、関数myImage ** selected()を呼び出すことでmyImage **を選択しました**(私の場合はキーボードリスナを使用しています)を実行しようとしました。上記のlambdaは、** touch/clickや関数myImage-> activate()を呼び出し**有効にした場合にのみ機能します。 上記のコードで、関数myImage-> selected()を呼び出すと、 'image_selected.png'イメージのみが表示されます。 –
私の編集を参照してください、私は明確化が必要です – Makalele
あなたは私の考えを持っています。具体的には、1mでメニューを作るのが好きです: 'https://www.youtube.com/watch?v = PJSlvhDbB4I&feature = youtu.be&t = 1m'。あなたが気づくように、アイテムの周りには、私がやろうとしている輝く青い線があります。上記のコードを使用して、これを実現するために、アイテムが選択されたときに、コールバック関数を追加したいと思います( 'myImage-> selected()') image_selected.png'。ラムダは** myImage-> activated()**で起動時にアプリを開くために使用されます。 –