Cocos2d-x(Cocos2d-js)では、スマートフォンのタップやマウスの動作の他に、PCのキーボードからの入力に対する反応(イベント)を設定することができます。
以下は、実際に十字キー(方向キー)とZキーの入力を受け取るためのイベントリスナーを設定するソースコードを app.js に記載した例です。
キーボードのイベントを取得するには event の値に cc.EventListener.KEYBOARD を指定します。キーを押し込んだときの処理は onKeyPressed に、キーを離したときの処理は onKeyReleased に記載します。
var HelloWorldLayer = cc.Layer.extend({
sprite:null,
ctor:function () {
this._super();
cc.eventManager.addListener({
event: cc.EventListener.KEYBOARD,
onKeyPressed: function(keyCode, event) {
if (keyCode == cc.KEY.left) {
cc.log("左");
}
if (keyCode == cc.KEY.up) {
cc.log("上");
}
if (keyCode == cc.KEY.right) {
cc.log("右");
}
if (keyCode == cc.KEY.down) {
cc.log("下");
}
if (keyCode == cc.KEY.z) {
cc.log("Z");
}
},
onKeyReleased: function(keyCode, event) {
if (keyCode == cc.KEY.left) {
cc.log("左(解放)");
}
if (keyCode == cc.KEY.up) {
cc.log("上(解放)");
}
if (keyCode == cc.KEY.right) {
cc.log("右(解放)");
}
if (keyCode == cc.KEY.down) {
cc.log("下(解放)");
}
if (keyCode == cc.KEY.z) {
cc.log("Z(解放)");
}
}
}, this);
return true;
}
});
入力したキーに対応するコンソールログが出力されます。
cc.KEY には、全てのキーのキーコードが格納されています。この値を利用すれば、キーに対応する数値を調べる必要がなくなります。
cc.KEY を cc.log でログに出力してみると以下のように様々なキーのキーコードが含まれていることが確認できます。


