改造Tips

製作・改造Tips

 

Dan★Oniソース概要

他のソースでは多少違いがある場合がある。
変数名の違いはあっても、ver fd 3.0.0以降は基本的に同じ。

矢印・フリーズアローの生成ルール

矢印・フリーズアローの生成ルール [makeArrow]

矢印・フリーズアローの動作ルール(共通)

矢印・フリーズアローの動作ルール(共通) [movArrow]

1フレームで矢印が動く距離は以下の通り。

 

フリーズアローの動作ルール(その他)

  1. 通常時 ⇒ 上の手順と同じ。

  2. ヒット時(押しっぱなし中)

    1. 代替キーの設定
      フリーズアローと結びつけるキーを設定する。

    2. フリーズアローの色を変える。

    3. フリーズアローのバーを縮めて対の矢印を移動させる。
      フリーズアローバーの長さは"y1"で管理している。

    4. 途中でキーを離した場合は失敗

    5. 押し切った場合(y1が0未満)のときは成功

  3. 失敗時

    1. フリーズアローの色を変える。

    2. 対象となるフリーズアローが特定の位置へ移動するまで
      指定されたスピードで移動させる。

    3. フリーズアローを消去する。

判定に関するルール(枠外を除く)

判定に関するルール(枠外を除く) [judgeArrow]

judgeRule.png
  1. 押したキーと、対応する矢印・フリーズアローとの対応付けを行う。

  2. 現在判定する矢印・フリーズアローをチェックする。
    現在の矢印・フリーズアローは上の名前の決め方から特定する。

  3. 現在の矢印が範囲内にあるかチェック
    cntの値を調べてチェックする。対象内であれば判定も行う。

  4. 現在のフリーズアローが範囲内にあるかチェック
    矢印が判定内にない場合は、フリーズアローをチェックする。
    ここも同じくcntの値をチェック。判定は失敗時のみ行う。

  5. 空押しだった場合
    矢印・フリーズアローともに判定内でない場合は、空押しになる。
    (ステップゾーンを光らせる)
    BarDrainがEscape+の場合は、プギャー判定を行う
    (ただし、最初200フレームくらいは判定を行わない)。


 

譜面読み込みフロー [StartupArrow.as]

load.png
※ ver fd 4.3.0以降より、計算に時間がかかった場合のタイムアウト処理を追加。
  1. 初期化チェック(ver fd 4.3.0以降のみ)
    • 初回は素通り。タイムアウトが発生して戻ってきた場合のみ、~ 矢印出現位置補正[pushNotes]まで処理をスキップする。

  2. 譜面初期化[initLoad]
    • 指定された譜面ファイル名を元に読み込みを開始する。~ 判定数やコンボ数・判定幅など、ゲーム開始時に必要な変数もここで初期化。

  3. 譜面の読込
    • 譜面の読み込みが完了するまでは待機。~
  4. 譜面の取出し[loadNotes]
    • 譜面データを配列化して取り出す。~ また矢印数からフェードイン場所とライフ値を決定し、
      速度変化についてはフェードイン量に応じて数値を補正する。

  5. 各フレームの速度格納[storageSpd]
    • 各フレームにおける速度を、速度データから取得する。~ このデータは後の矢印出現位置補正[pushNotes]で必要。

  6. Sp.Motion補正計算[motionSpd]
    • Sp.Motionの軌道関数から補正座標を計算する。~ 補正座標は配列に格納しておく。(Sp.MotionがOFFでも生成するので注意)

  7. 矢印出現位置補正[pushNotes]
    • 矢印の種類ごとにループさせ、矢印の出現位置を逆算する。~ 速度が一定の場合は初めだけ逆算して、後は一律減算。

    • 矢印の種類単位で7秒以上処理時間がかかった場合は、~ 一旦タイムアウトを出して処理を終了させ(初期化チェックへ戻る)、
      再度入ってきた場合に途中から処理を続行する。(ver fd 4.3.0以降のみ)

    • 速度変化・色変化の逆算を行う。~ 色変化は識別番号と実際に変更する矢印の対応付けも合わせて行う(pushColor)。

  8. 一時変数削除[delTemporary]
    • 上記読込処理で共通に使用した一時変数を削除する。~


ホーム   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS