2017-03-27 3 views
0

私はここ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

答えて

1

は単純にこれを行います。メニューの中にいくつかのボタンがありたいのですが、どちらかが選択されていて、矢印を使ってそれらを変更していますか? (メニューナビゲーションはコンソールゲームのようです)。

EDIT2:

腕時計した後、私はあなたがこのMenuItemImageのみに依存を実現することができるとは思わないサンプルYT動画。代わりに私はui :: Button(あなたがクリック/タッチする必要がある場合)またはスプライトを作成します。それから私は自分でボタンの状態を処理します。光っているフレームについては、おそらくいくつかの派手なシェーダが必要ですか、それをPhotoshopで作成し、常にフェードアウトしてアクションを追加してください。

+0

こんにちは@Makalele、あなたの返信ありがとうございます。しかし、関数myImage ** selected()を呼び出すことでmyImage **を選択しました**(私の場合はキーボードリスナを使用しています)を実行しようとしました。上記のlambdaは、** touch/clickや関数myImage-> activate()を呼び出し**有効にした場合にのみ機能します。 上記のコードで、関数myImage-> selected()を呼び出すと、 'image_selected.png'イメージのみが表示されます。 –

+0

私の編集を参照してください、私は明確化が必要です – Makalele

+0

あなたは私の考えを持っています。具体的には、1mでメニューを作るのが好きです: 'https://www.youtube.com/watch?v = PJSlvhDbB4I&feature = youtu.be&t = 1m'。あなたが気づくように、アイテムの周りには、私がやろうとしている輝く青い線があります。上記のコードを使用して、これを実現するために、アイテムが選択されたときに、コールバック関数を追加したいと思います( 'myImage-> selected()') image_selected.png'。ラムダは** myImage-> activated()**で起動時にアプリを開くために使用されます。 –