ゲーム「ワガハイ式ビリヤード」 制作手順2-2

監督スクリプトを記述しよう

このページでは、前回に引き続き、ゲームの監督スクリプトを記述していきます。監督スクリプトの主なお仕事は以下のような感じでしたね。

・ゲーム開始直後、数球オブジェクトを初期配置に並べる

自分のターンにて、パワーや方向などを調節し、手球を発射

・CPUが(とあるルールにのっとり)パワーや方向などを調節し、手球を発射

・発射後、手球や数球の状況によって、次の番が自分かCPUかを決定する

前回で、一つ目の数球初期配置作業はスクリプト化完了しました。今回は二つ目の、自分のターン時の作業をスクリプト化していきましょう!自ターンの動きについては、結構話盛り沢山なので、2ページに分けて説明していきます!

スクリプトを書こう2-1(自ターンの動き)

その前に…Updateメソッドの全容紹介

今回からUpdateメソッドの中身に入っていきますが、後々のことも考えると、大まかな全体構造は↓のような感じになります。スクリプトを書いてると、どうしても細かいことに眼が行きがちですが、全体を見渡せる眼を持っておくこともめっちゃ大切です。ここでは、先に全容を把握しておきます!

こんな感じで、2つの変数myturnとwaittimeで今どの状況にあるかを大きく場合分けしていきます。今回はmyturn=0、waittime=0、つまり自分の番での処理を書いていきます。

自ターンでの動きについて(概要)

ゲームが遊べるページにも書いてありますが、自ターンで調節出来ることは3種類ありましたね。1.パワー、2.方向、3.手球位置 を調節出来て、調整項目の変更は左右Shiftキー、各項目の微調整は、全て矢印キーで行い、全て調節し終わったらEnterキーで発射!という話でした。

ビリヤード 発射角度ちなみに、パワーは0~100%で調整(初期値100%)、方向は-178~180度で調整(初期値0度…真右方向)します。+の角度が反時計回り方向の角度、-の角度が時計回り方向の角度になります。

この辺の情報をざっくりスクリプトに書いていきますと…。

まずは↑のような大まかな流れを理解して下さい。次に細かなスクリプトを挿入していきます。コメント行の最初に【要追加】と書いてある行には、その後書いてあるような内容のスクリプトを追加する必要があります。このページでは【要追加】①~③を順に説明し、【要追加】④~⑤は次回にまわします!

あと、↑スクリプト中最後の方にある手球発射のスクリプト文については、手球スクリプト中のメソッドを使用しますので、本メソッドの詳細は制作手順3を参考にして下さい。

ビリヤード 左上指示①左上の表示を変更

まず、追加が必要なスクリプトとして多いのが、左上の表示を変更という指示です。確かに、発射パワーや発射角度が変更されたら、都度左上の表示を変更する必要がありますよね。その指示は別メソッドで以下のように書けます。

②上矢印君の移動

次に、制作手順1-2の時にご紹介した上矢印君の移動スクリプトを作成します。setting=0(パワー調節時)、setting=1(角度調節時)の時は固定位置に移動すれば良いですが、setting=2(手球位置調節時)では手球を指すような位置にいてほしい、つまり手球の位置によって上矢印君の位置も変えたいですよね。その辺りに気を付けて、別メソッドで以下のように書きました。

③初期設定もろもろ

ここでは、パワーとか角度とか色々設定する前に、まず以前の設定値をリセットします。あと、前回のページの補足で少しお話しましたが、Updateメソッド内で配置する(ゲーム中、定期的に何度も配置するため)オブジェクトが何個かありましたね。その辺りの処理をこの最初の段階で行っておきます。スクリプトは、別メソッドで以下のように書きました。

ちなみに、Updateメソッド内では最初に来るコイツの説明を何故最初にしないかと言うと、①、②で作成したメソッドを今から↓で使用するからです!分かりづらい説明の順番だったらすいません。m(_ _)m

ビリヤード remaininglist解説ここで、新たに動的配列remaininglistなるものが登場しました。この配列の使い方詳細はまた制作手順2-5で説明しますが、要するに台上に残っている数球の番号リストになっており、ポケットに落ちた数球の番号は随時この配列から削除していく、という仕組みになっています。

よって、結果的にremaininglist[0]は残っている数球の最小番号になります。なので、上のスクリプトより、赤丸強調表示君は最小番号の数球を強調してくれますし、Next欄の数球も最小番号の数球になる、という仕組みになります。この表現はこの後も何度も登場しますので、remaininglist[0]は台上に残っている数球の最小番号というポイントだけでもおさえといて下さい。m(_ _)m

最後に

今回は、自ターンの挙動について、Updateメソッド中にスクリプトを書いていきました。長くなってしまい、すいません。m(_ _)m しかし、まだ詳細部分については全部書ききれていませんので、次回自ターンの挙動スクリプトの残りについて、引き続きスクリプト化していきます!!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする