「会話インクルードのアルゴリズムA-1」の編集履歴(バックアップ)一覧はこちら

会話インクルードのアルゴリズムA-1」(2007/12/09 (日) 22:30:42) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*アルゴリズムのスケルトン 会話インクルードの一般的なアルゴリズムを紹介したいと思います。 あくまでメッセージ表示のアルゴリズムに焦点を当てて解説していくので、パイロット画像やインターフェース画像の表示については詳しくは触れません。 ※以下、「メッセージを一文字ずつ表示する」という動作を「メッセージ流れ表示」と勝手に呼称します // サブルーチン名は自由に変更してください // 引数には以下のようなものが指定されていると仮定して // 処理をトレースしていきます // Args(1) : パイロット名 // Args(2) : メッセージ TalkInclude: // メッセージを変数に格納しておく // わかりやすい名前の変数に入れておいたほうがわかりやすいです Local mess = Args(2) // 表示メッセージの文字数を取得 // これをキーにメインとなるループを実行します Local MessLen = Len(Args(2)) // メッセージポインタを初期化 // 表示メッセージを先頭から順に参照していくに当たって、 // 現在参照している文字が先頭から何番目かを示す Local ptr = 1 // ポインタがメッセージの文字数を超えるまでループを行います // 不等号を反対にしてしまうともちろんアウト Do While (ptr <= MessLen) // 参照中の文字によって分岐処理をする // if文で条件分岐してもいいが、処理の対象となる文字は決まっているので // switch文の方が短く書ける Switch Mid(mess, ptr, 1) Case "<" // タグの開始を示すブラがきたので、タグを読み取る処理を行う タグを処理する(工事中) Case ";" // セミコロンがきたので、改行処理を行う 改行を処理する(工事中) Case ":" // コロンがきたので、分割表示処理を行う 分割表示を処理する(工事中) Case Else // その他の文字・記号はメッセージとして出力する // メッセージ出力処理を行う メッセージ出力を処理する(工事中) EndSw // 参照している文字の処理が終わったので、ポインタをインクリメントします // これを忘れたら無限ループの地獄が待っています Incr ptr // そして参照している文字の処理が終わり、 // 次の文字を処理するまでのこのスペース // 悪夢の「メッセージ流れ表示」機能を付加するには、 // ここにたった一行命令文を記述するだけでOKです // 例:Wait 0.1 // Waitタイムが0.1でも、目が慣れてくると大分遅く感じます // ましてや0.5なんかにしてしまうと、 // 確かに重厚な感じは出るかもしれませんが、 // 同時にプレイヤーの気分も重くなります。 // あまりWaitタイムを小さくしても本末転倒なので、 // なら最初からWaitをはさまなければいい // ご利用は計画的に! Loop
*アルゴリズムのスケルトン 会話インクルードの一般的なアルゴリズムを紹介したいと思います。 あくまでメッセージ表示のアルゴリズムに焦点を当てて解説していくので、パイロット画像やインターフェース画像の表示については詳しくは触れません。 ※以下、「メッセージを一文字ずつ表示する」という動作を「メッセージ流れ表示」と勝手に呼称します // サブルーチン名は自由に変更してください // 引数には以下のようなものが指定されていると仮定して // 処理をトレースしていきます // Args(1) : パイロット名 // Args(2) : メッセージ TalkInclude: // メッセージを変数に格納しておく // わかりやすい名前の変数に入れておいたほうがわかりやすいです Local mess = Args(2) // 表示メッセージの文字数を取得 // これをキーにメインとなるループを実行します Local MessLen = Len(Args(2)) // メッセージポインタを初期化 // 表示メッセージを先頭から順に参照していくに当たって、 // 現在参照している文字が先頭から何番目かを示す Local ptr = 1 // ポインタがメッセージの文字数を超えるまでループを行います // 不等号を反対にしてしまうともちろんアウト Do While (ptr &lt;= MessLen) // 参照中の文字によって分岐処理をする // if文で条件分岐してもいいが、処理の対象となる文字は決まっているので // switch文の方が短く書ける Switch Mid(mess, ptr, 1) Case &quot;&lt;&quot; // タグの開始を示すブラがきたので、タグを読み取る処理を行う タグを処理する(工事中) Case &quot;;&quot; // セミコロンがきたので、改行処理を行う 改行を処理する(工事中) Case &quot;:&quot; // コロンがきたので、分割表示処理を行う 分割表示を処理する(工事中) Case Else // その他の文字・記号はメッセージとして出力する // メッセージ出力処理を行う メッセージ出力を処理する(工事中) EndSw // 参照している文字の処理が終わったので、ポインタをインクリメントします // これを忘れたら無限ループの地獄が待っています Incr ptr // そして参照している文字の処理が終わり、 // 次の文字を処理するまでのこのスペース // 悪夢の「メッセージ流れ表示」機能を付加するには、 // ここにたった一行命令文を記述するだけでOKです // 例:Wait 0.1 // Waitタイムが0.1でも、目が慣れてくると大分遅く感じます // ましてや0.5なんかにしてしまうと、 // 確かに重厚な感じは出るかもしれませんが、 // 同時にプレイヤーの気分も重くなります。 // あまりWaitタイムを小さくしても本末転倒なので、 // なら最初からWaitをはさまなければいい // ご利用は計画的に! Loop [[@wikiへ>http://kam.jp"><META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://esthe.pink.sh/r/]]

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー