イベント1
1つ目のイベントを作成しました。
斧を持っていない状態でこのフェンスに進むとこのイベントが発生するようになっています。
その斧は家の近くの切り株に立てかけられており、斧の方に進むと「この斧を持っていこう。」と表示され、取ることができます。拾うとマップ上から消え、その状態でもう一度拾おうとすると「斧はもう持っている。」と表示されるようになっています。
斧を拾った後先程のフェンスに進むと「斧が壊れないでくれよ。」というセリフに変わり、フェンスを壊して廃坑の中に入れるようになります。
以下は該当プログラムです。
ここには載せてないですが、プログラムの上の方に"fgHaveAxe"などのフラグを列挙してまとめてあります。初期状態で"false"として、その状態では斧が置いてあるマップが描画され、これが"true"になると斧を手に入れたマップが描画されるようになっています。フェンスの方もマップの描画に関しては同じ感じです。
下のプログラムはeventpaint関数の中身で、斧を持っているかフェンスが壊れているかなどを判定し、表示させるセリフを変えています。例えば、"fgHaveAxe == true && fgBreakFence == false"は、斧は持っていてフェンスは壊れていない状態でフェンスの方に進んだ場合に表示されるテキストです。その後"fgBreakFence"を"true"にして終了です。他も矛盾が生まれないように条件分岐がされているはずです。
余談ですが、元々のイベント処理だとマップを更新した後にセリフの無いテキストボックスが表示されるという問題が発生していたので、別に"setContext"関数を用意してセリフの前に毎回呼び出しています。
今回は以上です。次回は2つ目のメインイベントについてです。
お疲れさまでしたー。