<<判定方法>> *ノーツが下のバーに重なったタイミングで指定されたキーを操作する **バーはゲームする人のタイミングの目安 **背景と同化 *秒数で判定する方法 ←決定 *==ノーツの場所で判定する方法== <> 画面遷移時に使う関数を
game_start(game);
から
var waitAmin = function(){
    game_start(game);
}
setTimeout(waitAmin, 1000);
に書き換えて待機時間を発生させてみた.
これでEnterを少し長く押していても大丈夫になるが,他の操作は受け付けてしまうため,改善策求む.
<<解決策・改>> enterframeを使う関数の前にストップ用の変数 stop = 0(名前は何でもいい)を宣言する.
ループ条件を stop == 0 にし,setTimeoutの前にstop = 1を代入してみた.
そうすると操作を受け付けない待機時間を発生させることができる.
動作確認はしたけど,他の画面で使って何かエラー吐いたらごめんね.
*例
var stop = 0;
nyanko.on('enterframe', function(e){
  if(stop == 0){
    if(game.input.enter){
      stop = 1;
      var waitAmin = function(){
        game_start(game);
      }
      setTimeout(waitAmin, 1000);
    }
    // ほかの動作は省略
});
by優菜子 <<解決策・改・改>> setTimeoutなんて面倒な関数を使う必要はなかった.
要は人間がキーを離す前にenterframe内でEnterの入力を感知してしまうからダメなのだ.
var timer = 0;
nyanko.on('enterframe', function(e){
  timer++;
  if(game.input.enter){
    if(timer > 10) // ここに入る数字は適宜調整
      game_start(game);
  }
});
このように書くことで,最初にこの関数が呼び出されてから10フレーム以内にgame_start(game)を実行することはなくなるのである.
by優菜子 <<十字キー操作>>
game_startScene.on('upbuttondown', function(ev){
  // 動作は省略
}
のように,game.inputでキー操作を検知するのではなく,buttondownをシーンに発生するイベントとしてキー操作を検知すれば,おしっぱにしても変に反応することはなさそう.(長押しもbuttonup系で対応できそうだが,時間がなさすぎるので省略) この方法は十字キーには使えるが,EnterやBackSpaceには使えないっぽい.
!!7/19追記 enchant.jsで指定されたキー以外でも,キーバインドを設定しておけばbuttondownはイベントとして使えることが判明した.
たとえば,
core.keybind(13, "enter");
のように宣言しておけば,
scene.on('enterbuttondown', function(ev){ /* 動作は省略 */}
のように指定キーの入力をイベントとして扱える.
ただし,ボタン押下イベントはSceneまたはCoreでしか発行できないので注意.
by優菜子 <<使えそうな素材>> *https://github.com/wise9/enchant.js/blob/master/images/font2.png{フォント}(enchant.jpのフリー素材) *https://dova-s.jp/bgm/play11057.html{BGM}(フリーBGMサイト、タイトルに良さそう) *https://dova-s.jp/bgm/play11020.html{BGM}(フリーBGMサイト、データ画面やドレッシングルーム画面に良さそう) <> *http://dotinstall.com/lessons/basic_enchant_js_v2{ドットインストールのenchant.js入門(全12回)} *http://www.atmarkit.co.jp/ait/series/965/{@IT(アットマークIT)の連載記事} *http://tmlife.net/programming/javascript/enchant-js-100-tips.html{enchant.js 怒涛の 100 tips} *https://qiita.com/ij_spitz/items/8c27ecc68b0bac9e8574{enchant.js入門} *https://qiita.com/Yusuke_mori/items/87215c46426f60401c6b{enchant.jsサンプルプログラム集} <<音ゲーの参考になりそう>> *https://github.com/Atsumi3/MusicAttack <> *https://gitlab.cis.iwate-u.ac.jp/2019_g04/test_project{班のGitlabページ} *http://wiki.cis.iwate-u.ac.jp/~kimura/csd/2018/material/gitlab/{Gitlabの使い方}