メニュー
トップ > dexplain(今ココ)

各dフォルダの説明部分です。

d6 lib/ input.jsとinputnya.js作成 jkey.js削除

モンスターデータについて
9/23
モンスター個別のデータはenemydata/enemiesdata.jsファイルにある。
出現モンスターグループのデータはbattle.jsファイルのInit()内で設定している。

youtubeAPI
9/16
lib/jkey.jsのファイル名をinput.jsに変更。
ページ表示後、YoutubeAPIの入力がなければ自動再生しない仕様(2020/10/08パソコンでは再生した)に対応する。
HTMLヘッダーで https://www.youtube.com/iframe_api スクリプトのロードをするよう変更。
(ロードしないと「Uncaught TypeError: Cannot read property 'cueVideoById' of null」エラー)
lib/input.jsで最初のクリックまたはキー押下でYoutubeSetMusic(0);を実行する。
GetYoutubeListEntry関数(../res/youtubelist.jsを参考)を用意すること。

10/7
TODO:ページ読込直後のクリックではonReadyが使われ、直後以降では$("body").bind('click'...)が使われる。
自動再生したくない場合もあるので、全てのパターンに対応した修正が必要。
res/youtubelist.jsのGetYoutubeListEntry(0)を自動再生する。
もしnoneであれば、再生しない。

d5 battle作成

menujs TODO
9/10
menuview.js
 SetContentAndItemIndices(cellIndex, itemName, itemNumber, itemIndex) 作成
 SetItemIndices(idx, value) 削除
ポーションなどはItemではなくConsumableとする。ゲーム表示は「アイテム」カテゴリのまま
 ../menudata/item0.js, ../menudata/item1have.js, 

9/5
リファクタリング
 ファイル名やクラス名を変更
 クリックで表現可能な各画面の単位によって名前をつける
 taskという単位によって切り分ける

menustask.jsを作成
 taskによって分けられたらfunction KeyTask()とClickTask()で処理を行うようにする。
 処理は左右上下キー、OKキー、Cancelキーごとの処理と、クリックの処理

d4

シーン(field, menu, battle)の切り替えコードのMenuでの例
1.シーン開始時の処理
  StartScene()
  {
    function StartSceneBody() {
      $("#idMenuFade").css('display', 'block');

      $("#idMenuFade").css('display','none');
      Menu.OnFadeIn();
      $("#idMenuFade").fadeIn(500, function() {
          setTimeout("Menu.FrameOne()", this.kOneFrameTimeMs);
        });
    }

    $("#idMenuFade").fadeOut(500, function()
    {
      StartSceneBody();
    });
  }
  
ここでゲームループ本体実行中!
2.OnCancel()などでシーン終了と次のシーンの設定を行う。
  OnCancel()
  {
    if (MHIsDisappearItem()) {
      if (typeof EndMenu == 'function') {
        this.#doContinueMenu = false;
        $("#idMenuFade").fadeOut(200, function() {
          setTimeout("EndMenu()", this.kOneFrameTimeMs);
        });
      }
    }
  }
  
シーン終了時は「this.#doContinueMenu」によってsetTimeOut()をスキップし、フラグをtrueに戻して終了する。
    this.#frameCount++;
    if (this.#doContinueMenu) {
      setTimeout("Menu.FrameOne()", this.kOneFrameTimeMs);
    } else {
      this.#doContinueMenu = true;
    }
  
3.html内のスクリプトで次のシーンへ移行する。
function EndMenu()
{
  Field.StartScene();
}