Windows/iPhoneアプリ、ゲーム用フリー音源、ヒーリングミュージックのMeteoric Stream


日本語 | English
Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> Cocos2d-x -> 【Cocos2d-x】キーボードのイベント判定処理(Windows、Mac対応)

【Cocos2d-x】キーボードのイベント判定処理(Windows、Mac対応)

Cocos2d-xで、WindowsやMacアプリを開発する時に便利な、キーベードイベントの実装方法です。

ざっくりと、下記のような例で実装できます。
要は、onKeyPressedで、キーが押された時の判定、onKeyReleasedでキーが離れた時の判定を行います。

そのため、例えば、十字キーを押している間、ずっと主人公が自動する、とか、Zボタンを押している間、弾を連射、する、などの、長押し処理については、onKeyPressedが呼ばれた時に、フラグ用の変数をONにして,onKeyReleasedの時にフラグをOFFにすればOKです。

その後は、あらかじめ設定しておいたタイマーで、ループ処理をしているゲームメイン部分で、フラグがONの時だけ移動や弾撃ちの処理を行うようにすれば良い、という事になります。

auto listener = EventListenerKeyboard::create(); listener->onKeyPressed = [this](cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event* event)->bool{ // 下ボタンを押したらフラグをONにする例 if(keyCode == cocos2d::EventKeyboard::KeyCode::KEY_DOWN_ARROW){ keydown_flg = 1; } return true; }; listener->onKeyReleased = [this](cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event* event)->bool{ // ESCボタンでゲームを終了させる例 if(keyCode == cocos2d::EventKeyboard::KeyCode::KEY_ESCAPE){ Director::getInstance()->end(); } // 下ボタンを離したらフラグをOFFにする例 if(keyCode == cocos2d::EventKeyboard::KeyCode::KEY_DOWN_ARROW){ keydown_flg = 0; } return true; }; this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);

この記事の最終更新日:2017/12/05
最初に記事を書いた日:2017/12/05

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

関連サービス

資料室のトップに戻る
Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> Cocos2d-x -> 【Cocos2d-x】キーボードのイベント判定処理(Windows、Mac対応)
▲このページのTopへ