キーボードのキー操作が反応しないバグ【enchant.js】
9345 ワード
#バグの内容
- 「
enchant.jsでキーボード入力をしても、反応しないバグ
」
enchant.jsでキーボード入力をしても、反応しないバグ
」別の言い方をすると、
- キー操作ができない
- スペースキーが効かない、矢印キーが効かない
(備考:HTML単体で動かすと反応するが、<iframe>
などでのホームページへの組み込みをしたり、code9leapなどで実行したりする時に反応しない。)
#バグの原因
「window(ゲーム画面)にfocusが合っていないため
」だと考えられる。
#デバッグ方法
方法:windowにfocusを当てるための以下のコードを一番先頭に追加
する。
debug.js
window.focus();
#サンプルプログラム
以下、「スペースキーを押すと、キャラクターのframe(見た目)が変わる」プログラム。
>>デバッグ前のコード
before.js
enchant();
window.onload = function(){
//ゲームの設定
var game = new Core(320, 320);
game.fps = 10;
game.preload('chara1.png');
//スペースキー(ASCII表の32番)が押されたとき、aボタンをオンにする
//ゲーム内の仮想のaボタンとキーボードを繋げる - keybind
game.keybind(32, 'a');
game.onload = function(){
//プレイヤーのプログラム
player = new Sprite(32,32);
player.image = game.assets['chara1.png'];
player.frame = 0;
player.x = 144;
player.y = 144;
game.rootScene.addChild(player);
player.addEventListener('enterframe', function(){
//aボタンをオンになった時(スペースキーが押された時)、プレイヤーのフレームを変える
if(game.input.a){
player.frame = 5;
}
});
};
game.start();
};
>>デバッグ後のコード
after.js
// * この行を追加し、windowにfocusを当てた。
window.focus();
enchant();
window.onload = function(){
//ゲームの設定
var game = new Core(320, 320);
game.fps = 10;
game.preload('chara1.png');
//スペースキー(ASCII表の32番)が押されたとき、aボタンをオンにする
//ゲーム内の仮想のaボタンとキーボードを繋げる - keybind
game.keybind(32, 'a');
game.onload = function(){
//プレイヤーのプログラム
player = new Sprite(32,32);
player.image = game.assets['chara1.png'];
player.frame = 0;
player.x = 144;
player.y = 144;
game.rootScene.addChild(player);
player.addEventListener('enterframe', function(){
//aボタンをオンになった時(スペースキーが押された時)、プレイヤーのフレームを変える
if(game.input.a){
player.frame = 5;
}
});
};
game.start();
};
Author And Source
この問題について(キーボードのキー操作が反応しないバグ【enchant.js】), 我々は、より多くの情報をここで見つけました https://qiita.com/umi_mori/items/d09b56da0ebc09553bea著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .