【四川省への道】第9話こんにちは、トラップですぅ。(^o^)/ 前回でルールの組み込みも終わり、ゲームとして遊べるレベルになりました。 今のままでも遊ぶには充分なんですが、牌を取る時がちょっと淋しいので、 少しだけ工夫してみましょう。(^^) ◎牌を取るときの接続ラインの描画 牌を取る時に、どんな経路で取れるのかを表示すれば、見た目もいいし、 「え、何でこれが取れるの!?」といった事もなくなります。(^^) それに、ユーザーが「牌を取ったんだ・・」という感触を得られるのも ポイントです。ゲームに限った事ではありませんが、フィードバックが ないとプレイしていて不安ですものね。(^-^) さて、その実現方法ですが・・・コの字型の場合を例に考えますと、 2つの牌を結ぶためには、3本の線が必要だとわかります。 ・・という事は、点の座標が4つわかれば充分ですね。(^^)b さて、ここで前に追加していたサブルーチンが意味を持ってきます。 ( *T1T1T2, *T1T2T2, *T1122U1WW2, *T1WW2U1122, *U12, *T12 ) 取るパターンによって、これらのルーチンをわけていたのは、まさに この時のため。点の座標をそれぞれ LX(), LY() に格納して、その数を LC に入れておいたんです(^o^)b。もう準備はできているわけですから、 後は牌を消す前に接続ラインの描画を行うだけなのです。(^-^)v 3本のラインだとすると、次のようになるでしょう。 (1) (LX(0),LY(0))-(LX(1),LY(1))まで線をひく。 (2) (LX(1),LY(1))-(LX(2),LY(2))まで線をひく。 (3) (LX(2),LY(2))-(LX(3),LY(3))まで線をひく。 (4) ちょっと待つ。 (5) (LX(0),LY(0))-(LX(1),LY(1))までの線を消す。 (6) (LX(1),LY(1))-(LX(2),LY(2))までの線を消す。 (7) (LX(2),LY(2))-(LX(3),LY(3))までの線を消す。 初めは、1度書いた線をどうやって元に戻すかで悩んだのですが、 よく考えたら、線が通るのは"背景"と、"消される牌"の上ですから、 単に「背景と同じパターン」で消してあげればいいだけなんです。 これに気づくまでは、XOR 演算で描画しておこうか、それとも元の 画面を保存しようか・・・なんて悩んじゃいました。(^^; ヤレヤレ さて、ここまで来れば後は力技!LX(),LY()には画面の座標ではなく、 牌の座標で記録していますので、X座標の方は X*12+5、Y座標の方は Y*16+21 の計算を行った上で描画してあげましょう。(^^)/ 1 REMサンプル No.8 515 ' 520 *TC3 530 IF LC=&0 THEN *T3 540 FOR I=&0 TO LC:LX(I)=LX(I)*12+5:LY(I)=LY(I)*16+21:NEXT 550 FOR I=&0 TO LC-1 560 CALL@41,(LX(I)-1,LY(I)-1)-(LX(I+1),LY(I+1)),&1,&4 570 NEXT 580 CALL@11,20 590 FOR I=&0 TO LC-1 600 CALL@41,(LX(I)-1,LY(I)-1)-(LX(I+1),LY(I+1)),&3,&0 610 NEXT かくして、接続ライン描画ルーチンも無事にできました。 ちょっとした事ですけど、それっぽい表示になりましたよね。(^^)v ◎より良いソフトにするには・・・ さてさて、とりあえず自分で遊ぶ分には申し分ないできになったと 思います。では、もっと良いものにするにはどうしたら良いでしょう? 今のままでは画面が淋し過ぎますよね・・・となると、画面をもっと 華やかにしてみるとか、そう!ゲーム開始までの待ち時間に、何か一言 メッセージが欲しいですよねぇ。ゲームクリアしたら、その喜びを倍増 させるような画面、効果音なんてのもいいですね。(^_-) 画面や音だけじゃなく機能面もそう、今の画面をやり直したり、新規に ゲームを始める・・・それから、時間の記録!ハイスコア記録を忘れちゃ いけませんよね〜。これがあると無いとでは、ゲームの燃え方が違って きちゃいますもん。(^^)b そぉそぉ、遊び方を説明することも考えると、アシストキーを押したり ヘルプボタンを押すことで説明が読めると嬉しいですよね。(^^) 皆さんもいろいろと工夫してみてくださいねぇ〜。o(^-^)o ◎最後に・・・ 長々と続けてきた【四川省への道】ですが、今回をもって終わりに したいと思います。ハイスコア登録やボタン処理、メニュー処理など、 本連載で取り上げなかった項目はまだまだあるのですが、それらは ライブラリにアップされたソースを見ていただければ、容易に理解 いただけることでしょう。(^o^)b それに本連載では、1つのゲームを完成させるまでの過程・・・・・ つまり、イメージからプログラムを作るまでをお話ししたいと考えて きましたので、まぁ目標通りかな・・なんて思ったりして。(笑) ではでは、この【四川省への道】が、Add-Inを開発したい方にとって、 何らかの参考になる事を祈りつつ、筆をおくことにします。 ご愛読ありがとうございました。 m(__)m【今回のソースお持ち帰り】 SAMPLE8.SRC |