ストーリーモード文字列制御のプログラムについての説明 st_message.c // プログラム本体 st_message.c を作ったのは大倉さんなので、不明なところが多々有ります。 ------------------------------------------------------------------------------------------------------------------------------------ 文字列データの制御文字の説明 main50.c にストーリーの文章データが有りますが、その中で使われている制御文字の説明をします。 改 改行します。 消 表示中の3行すべて消去し,下記の名前表示状態を解除します。 顔?? 顔を表示するようにします。??には1バイト文字で顔番号を入れます。1桁の番号の場合 0? というように記述します。 なお、顔番号は main50.c の faces の配列番号をいれています。この制御を行うと自動的に、1行12文字描画になります。 名??XXXX 名前を描画します。これを使うと、名前が描画されっぱなしになり、下2行しかスクロールしないようになります。 ??には、名前の文字数を入れます。1桁の番号の場合 0? というように記述します。XXXXには名前を入れます。 名を使った場合には、名前の最後に"改"を入れて下さい。( 例: 名04ルイージ改 ) 多 1行16文字描画になります。同時に顔表示フラグも解除されます。 旗?? タイルの処理番号を設定します。基本的に01( 上に上がる処理 )しか行いません。 止 キー入力待ち状態にします。 待 プログラムには記述してありますが、現在使われていません。 貢 背景番号を1つ進めます。旗01とセットで使用します。タイルが一番上まで上がると、頁で設定された背景番号がセットされ、 タイルが下に降りてきます。 始 背景番号に処理終了数値を入れます。これも、旗0とセットで使用します。タイルが一番上まで上がると、終了数値により、 メインループから脱出する処理(フェードアウト)に移ります。 ------------------------------------------------------------------------------------------------------------------------------------ *ソース説明 ------------------------------------------------------------------------------------------------------------------------------------ u8 change_font( u16 font_num ) 行番号 69 〜 112行 文字データのテーブル変換関数 ( ソース参照 ) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void init_font( void ) 行番号 115 〜 144行 初期化関数 ( コメント参照 ) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void set_intencity_rgb( u8 r1, u8 g1, u8 b1, u8 r2, u8 g2, u8 b2 ) 行番号 146 〜 155行 インテンシティ使用時のプリミティブカラーと環境カラーをセットする関数 ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void set_intencity_mode( void ) 行番号 157 〜 163行 インテンシティを使用するための設定関数 ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void font_make( u8 *moji ) 行番号 165 〜 240行 フォントデータ作成(文字列制御コードを抜いて、文字列のグラフィックだけを設定する) ( コメント参照 ) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void wait_button( void ) 行番号 244 〜 252行 キー入力待ちの時のボタン描画関数 ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ s8 calc_message( void ) 行番号 256 〜 380行 文字列制御関数 ( コメント参照 ) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void disp_message( void ) 行番号 484 〜 534行 文字列描画関数 ( コメント参照 ) ------------------------------------------------------------------------------------------------------------------------------------