簡単なスロットゲームの作り方(2D) 後編
※この記事は「簡単なスロットゲームの作り方(2D) 前編」の続きの記事になります
前編の記事はこちら
前回の記事でオブジェクトの配置について説明しました。
今回の記事では、実際にコードを書いてゲームを完成させていきます。
1.アルゴリズムとか
今回のスロットゲームのアルゴリズムや手順ついて説明します。
コードは全部で2つあります。
- 1つ目はリールの動きを制御する「ReelController」
- 2つ目はゲーム全体の管理を行う「GameController」
まずは1つ目の「ReelController」のアルゴリズムについて説明します。
①リールの子要素に絵柄を生成する
リールの子要素にプレハブからランダムに絵柄を生成します(今回は12個)。
②リールを動かす・止める
リールを下に移動させ、回転しているように見せます。リールの上端(絵柄の最後)までリールが来た場合、リールを初期位置に戻します。
また、ストップボタンが押された時には移動速度を大幅に下げ、グリッド位置で停止させます。
③「GameController」に絵柄を送る
ストップボタンが押された時、停止した位置で見えている絵柄を「GameController」に送ります(値送り)。送られた値は絵柄の当選判定(揃ったか判断)に使われます。
次は2つ目の「GameController」のアルゴリズムについて説明します。
①各種ボタンの有効化・無効化を行う
Playボタンを押したら全部のリールを止めるまで押せなくする等の処理を行います。
②当選判定(揃ったか判定)を行う
3つリールが止まったら、絵柄が揃っているかの判定を行います。揃っていた場合、Logに「〜のラインが揃ったよ。」と通知を行います。
以上がコードの説明になります。
細かい説明はコード内コメントをご確認ください。
2.実際のスクリプト
・「ReelController」
・「GameController」
3.ゲームを完成させる
(1)空のGameObject作成し、以下のように設定して下さい。
(名前を「GameController」、GameController.csをアタッチ)
アタッチしたGameControllerを以下の画像のように設定して下さい。
(2)3つのReelにReelController.csをアタッチして下さい。
アタッチしたReelControllerの設定は以下の画像のように設定して下さい。
(Gcは(1)で作成したGameController、ImgObjは前編で作成した絵柄のプレハブ(絵柄のプレハブ数だけSizeの値を調整して下さい)、Speedは任意の正の整数で設定して下さい。)
(3)3つのStopButtonのOn Click()にそれぞれ対応するReelをアタッチ(StopButtonLならReel_L)、クリック時の動作をReelController->ReelStop()にします。
3つのStopButton全てでこの設定を行なって下さい。
(4) (3)と同じようにPlayButtonのOn Click()にGameControllerオブジェクトをアタッチ、クリック時の動作をPlay()にします。
以上で完成です
お疲れ様でした。
(8/23追記)この記事の続き「簡単なスロットゲームの作り方(2D) おまけ」を公開しました。
コード汚い&わかりにくくてすいません...