Seaurchin Wiki

The Ground Slider Simulator

ユーザ用ツール

サイト用ツール


wiki:api:sceneplayer

ScenePlayer クラス(参照)

プレイ画面の要、というかSeaurchinの要となるクラスです。ノーツエリアの描画・操作を司ります。 名前はScenePlayerですが実態はスプライトに近く、AddSpriteを使用してシーンに追加します。

フィールド

int Z

これが描画される順序を指定します。値が大きいほど手前に描画されるので、背景画像よりは大きい、そして上部のパネルよりは小さい値を指定することで自然な見た目になります。

メソッド

void SetResource(const string &in key, (Image|Font|Sound|AnimeImage)@ resource)

ScenePlayerで使うリソースをセットします。参照は内部で保持するのでシーン側で別途保持しておく必要はありません。

  • key
    • リソースキー
    • Seaurchin側で固定されている値を指定します。詳しくはリソースキー一覧を参照してください。

void Initialize()

プレーヤーを初期化します。インスタンスを作ったらSetResource後に必ず呼ぶ必要があります。

void Load()

現在選択されている譜面・キャラクターを非同期で読み込みます。 既知の不具合として、この読み込み中にシーンを終了(=ScenePlayerを破棄)するとSeaurchinがクラッシュします。

bool IsLoadCompleted()

読み込みが完了したかどうかをチェックします。 以下のように使用することをおすすめします。

// ここまでにScenePlayerの初期化処理
player.Load();
while(!player.IsLoadCompleted()) YieldFrame(1);
  • 返り値
    • 終了していればtrue、読み込み中であればfalse

void GetReady()

AbilityのOnStartを呼び出し、再生準備をします。 呼び出し順としてはLoad→GetReady→Startとなるべきです(これ以外の順番で呼ぶと多分何も起きないです)。

void Play()

再生を開始します。最初に1回呼び出せばOKですが、複数回呼んだ場合の動作は未定義です。

void Pause()

ポーズします。ScenePlayerの描画処理はずっと続きますが、再生処理が停止します。 ポーズ以外のときには無視されます。

void Resume()

ポーズを解除します。ポーズ以外のときには無視されます。

void Reload()

ポーズ中に呼び出すと譜面をリロードします。曲の再生位置もできる限り復元します(つまり、楽曲ファイルもリロードされます)。

double CurrentTime()

現在の再生位置を取得します。譜面の0小節目の開始で0になるように調整されてます。

  • 返り値
    • 秒単位の再生位置

void GetCurrentResultTime(DrawableResult &out result)

Resultクラスの同名メソッドと全く同じ動作です。

void MovePositionBySecond(double seconds)

指定秒数だけ再生位置を移動します。移動した区間のノーツの判定はうまい感じにどうにかしてます。

  • seconds
    • 秒単位相対移動量

void MovePositionByMeasure(int measures)

指定小節数だけ再生位置を移動します。移動した区間のノーツの判定はうまい感じにどうにかしてます。

  • measures
    • 小節単位相対移動量
    • 小節の頭出しの動作になるので、-1を指定すると今いる小節の前の小節の頭に飛びます。
    • 0を指定すると現在の小節の頭出しができると思います。

void SetJudgeCallback(JudgeCallback@ callback)

判定発生時に呼ばれるコールバックを登録します。すでに登録されている場合は前のが削除されます。 必ずInitializeを呼んだ後に設定してください。

double GetFirstNoteTime()

最初のノーツの判定時刻を取得します。

  • 返り値
    • 最初のノーツの時刻

double GetLastNoteTime()

最後のノーツの判定時刻を取得します。

  • 返り値
    • 最後のノーツの時刻

void AdjustCamera(double x, double y, double z)

カメラ位置を調整します。普通使わないと思いますが…

単位はDXライブラリ準拠になります。ちなみに注視点は(0, 0, 580)固定です。また、カメラのデフォルト位置は(0, 620, -340)で、Z軸平行にレーンが乗っています。また、AirActionレーンはy=240平面に乗っています。

  • x
    • 移動するX相対値
  • y
    • 移動するY相対値
  • z
    • 移動するZ相対値

void StoreResult()

今現在のリザルトを保存します。あとでGetStoredResultで取得することが出来ます。

wiki/api/sceneplayer.txt · 最終更新: 2019/01/15 15:37 by amenoshita_429