さて、今回はLaboratoryテーマ21「指定座標に指定サイズのメッセージウィンドウを開きたい」そのBです。
今回公開したメッセージウィンドウは、メッセージを表示するだけでなく、スクリプトを組み込むことが可能です。
スクリプトに命令を追加することで、複雑なイベント管理が可能となります。
今組み込んであるのは、下表の3命令。
命令 | 意味 | 記述 | 動作 |
NX | NeXt | NX | 次のメッセージへ |
FE | FlgsetEnd | FE,n | フラグをn値に設定し、イベントを終了 |
end | イベント終了 |
追加で組み込む予定なのは、下表の命令。
命令 | 意味 | 記述 | 動作 |
YN | Yes/No | YN,x1,y1,m1,m2,m3 | 座標(x1,y1)に「はい/いいえ」の選択ウィンドウを開く。「はい」が選択されたら、メッセージm1、「いいえ」が選択されたら、メッセージm2、キャンセルが選択されたら、メッセージm3へ |
SW | SelectWindow | SW,x1,y1,x2,y2,n | 座標(x1,y1)に幅x2、高さy2の選択ウィンドウを開く。選択肢数はn |
WO | WindowOpen | WO,x1,y1,x2,y2,l | 座標(x1,y1)に幅x2、高さy2のウィンドウを開く。lで枠線の有無設定(0:有 1:無) |
MS | MessageSpeed | MS,n | メッセージ表示速度をnに設定 |
JP | JumP | JP,n | メッセージnへ |
FS | FlagSet | FS,m1,e1,n | マップm1のイベントe1のフラグをn値に設定 |
ES | EventStart | ES,e1 | イベントe1を実行する |
CF | CheckFlag | CF,m1,e1,m0,m1,m2,m3,… | マップm1のイベントe1のフラグが0ならメッセージm0、1ならメッセージm1、2ならメッセージm2...へ |
CS | CheckSelect | CS,m0,m1,m2,m3,… | SWで選ばれた項目番号が、キャンセルならメッセージm0、1ならメッセージm1、2ならメッセージm2...へ |
IN | INn | IN,n,m1 | 宿屋、所持金額から人数×nを減らし、HP・MPを全回復させる。所持金額が足りなければメッセージm1へ |
IS | ItemShop | IS,n,i1,i2,i3…,m1 | 店屋、n種類のアイテムを購入、所持アイテムの売却する。店を出た時はメッセージm1へ |
とりあえず今回は必要最低限、こんなところです。
ロールプレイングゲームでは、キャラクタ移動命令等も必要になるので、あまり多くの命令を組み込むと、メモリが全然足りません…。
私がMSXでのロールプレイングゲーム製作を断念し、Windowsへ製作移行した理由の大半はそれです。