デバッグのすすめ(ph3)

概要

東方弾幕風ph3にはスクリプト製作中のデバッグに便利な「ログウィンドウ」という機能があります。
このウィンドウは弾幕風内部の様々なデータを表示してくれるもので、上手に使えばスクリプト製作の能率は格段に向上します。
このページではログウィンドウに表示される情報、使い方について説明します。

ログウィンドウの出し方

config.exe -> Optionタブ -> 「ログウィンドウを表示する」にチェックを入れたあと弾幕風本体を起動

ログウィンドウに表示される情報(タブ別)


便利な使い方

「画像が表示されない!」とき……

ログウィンドウのLogタブを確認しましょう。
『テクスチャ読み込み失敗[(画像ファイルのパス)]』と表示されていれば、パスが間違っているため表示できなくなっています。
『テクスチャを読み込みました[(画像ファイルのパス)]』と表示されていれば読み込みはできていますが、何らかの理由で表示ができません。
(例えばSetSourceRect/SetDestRectの値を間違えている)

このように、ログウィンドウを確認することでエラーの原因を細かく確認することができます。

デバッグが大変なとき……

WriteLog()関数を使いましょう。
WriteLog()関数は引数に渡した文字列をログウィンドウのLogタブに表示する関数です。

スクリプトの適当な場所に以下のように書いて実行してみましょう。
    WriteLog("test");

ログウィンドウのLogタブに"test"と表示されたら成功です。
この関数はデバッグで大いに役立ちます。
例えば「if文で分岐しているはずなのに○○が実行されない!」というとき、WriteLog()をif文の分岐の中に書いてみましょう。
分岐が上手く言っていればログウィンドウに文字列が表示される、逆に失敗していれば文字列が表示されない……というように動作確認ができます。

また、使い方を工夫すれば変数の中身を表示することもできます。

  • 例:文字列型変数pathに格納されている値を調べたい場合
    let path = "./img/test.png"
    WriteLog(path); //Logタブに"./img/test.png"と表示される

ここで注意点があります。数字型変数(let i = 1など)の値を確認したい場合、WriteLog(i)と書いてはいけません。
変わりにWriteLog(rtoa(i))と書きましょう。
rtoa():渡した数字を文字列に変換してくれる関数

  • 例:数字型変数hogeに格納されている値を調べたい場合
    let hoge = 1;
    WriteLog(rtoa(hoge)); //Logタブに"1"と表示される

  • 最終更新:2016-03-03 10:59:44

このWIKIを編集するにはパスワード入力が必要です

認証パスワード