« かにしの編 ラベルとフラグと選択肢、の前に | メイン | 基本編 Nスクの設定とタイトルメニュー »

2007年06月23日

●かにしの編 その3 ラベルとフラグと選択肢

ようやっとほぼ読み終えてフラグ実装。
"<="なのか"<"なのか、はたまた">"なのか微妙なところもありますが、
テストプレイしながら直していこうかと。

とりあえず通常のフラグは"flag_xx"、グローバルは"gflag_xx"と置換しました。
1.txtの作成が終わったら、*define節用にシナリオからフラグ(変数)を拾います

open (IN, "1.txt");
open (OUT,">num.txt");
$gloval = 201;
$user = 11;
%flag;
while ( $line = <IN> ){
	if ( $line =~ /\%(g[a-zA-Z_0-9]*)/ ){
		if (( $flag{$1} != 1 ) && ( $1 ne "" )){
			print OUT "numalias $1,$gloval\n";
			$gloval++;
			$flag{$1} = 1;
		}

}elsif( $line =~ /\%([a-zA-z][a-zA-Z_0-9]*)/ ){ if (( $flag{$1} != 1 ) && ( $1 ne "" )){ print OUT "numalias $1,$user\n"; $user++; $flag{$1} = 1; } } } close IN; close OUT;

初出の変数を拾って、通常のものは"11"から、グローバルは"201"から numalias で定義

numalias gflag_c6,201
numalias gflag_f0,202
numalias flag_10,11
numalias flag_0f,12
numalias flag_05,13
numalias flag_11,14
numalias flag_06,15
numalias flag_07,16
numalias flag_01,17
numalias flag_03,18
numalias flag_08,19
numalias flag_09,20
numalias flag_0a,21
numalias gflag_f8,203
numalias flag_12,22
numalias flag_02,23
numalias gflag_f6,204
numalias gflag_f2,205
numalias gflag_f4,206
numalias gflag_f5,207
numalias gflag_f3,208
numalias flag_04,24
numalias gflag_f7,209

これを *define節に貼り付けてやれば完了です。

選択肢は

elsif ( $line =~ /^%00%02%02%00(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(.*?)%00(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}%07(.*?)%00(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(.*?)%00(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}%07(.*?)%00/ ){
		$sel1 = $1;
		$goto1 = $2;
		$sel2 = $3;
		$goto2 = $4;
		$sel1 =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		$sel2 =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		$goto1 =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		$goto2 =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		print OUT "select \"$sel1\",\*$goto1,\"$sel2\",\*$goto2\n";
	}

こんな感じ。変数の使い方が汚いのはご勘弁。
今はNスクデフォルトの "select" を使ってますが、車輪の国などのように
選択肢ウインドウ+文字スプライトのボタン化をすると原物に近づきます。
でも、車輪は単純な "select" じゃ実装出来なかったんですが、これは別に支障ないからなぁ…

ラベル、これはファイル名(拡張子なし)そのままでいいので楽ちんです

と、いうことで曲がりなりにも通しプレイ可能な状態となりました。
適当に暫定公開して、今後は随時演出強化の方向で行ってみたいと思います。
でもONSじゃ拡大・縮小は無理っぽい。大声とかで文字を大きくする演出も当面難しそうです

6/25追記)
>拡縮
と思ったら、ONSでも"drawbg2"が使える模様。Yu--Sさま感謝
"lsp2"が未対応だから、てっきりこちらもアウトかと…
かにしのタスクリストに追加です。不具合が治れば

トラックバックURL

このエントリーのトラックバックURL:
http://hitotsumori.com/x/cgi-bin/mt/mt-tb.cgi/30

コメントする