前回からの続きです。
最後に Blocks を自動落下するようにし、S キーの長押しで Blocks が下に落ちるようにします。
また、ゲームオーバー判定も追加します(ゲームオーバーの処理自体はここでは作りません)。
1.Blocks の自動落下とキー操作処理の作成
レベル編集画面に戻り、BlockController ブループリントをダブルクリックで開き、Event Graph を表示します。Blocks の落下を早める S キーが押されている状態かを判断するための変数、および自然落下時の計算用変数を作成します。
変数名 | 型 | 初期値 |
IsPressedDown | Boolean | false |
TickCount | Integer | 0 |
S キーの処理を以下のように変更。
Event Tick に以下の処理を追加します。
これで60フレームに一度 DownBlocks が実行され、また Sキー が押されている状態であれば1フレーム毎に DownBlocks が実行されます。
このままテストプレイをすると、S キーを押しっぱなしにするとブロックが次から次へと落ちていってしまうようになります。
Blocks が床に着いた段階で IsPressedDown を False にしてあげれば良いので、Tetris ブループリントの InsertControlledBlockToBoard 関数の末尾に以下処理を追加しましょう。
2.ゲームオーバー判定の作成
ゲームオーバーの判定は、新しく操作できる Blocks がフィールド最上部に移動した際に、CheckPutBlock で当たり判定をしてやれば良いです。Tetris ブループリントの InsertControlledBlockToBoard 関数の末尾に以下処理を追加します。
テストプレイでブロックを上まで積むと、「Game Over」が表示されます。
今回は特にその後処理を止めたり、初期化したりはしませんが、実際のゲームではここから別の処理が始まることになります。
3.サンプルプログラムのダウンロード
といったところで、テトリスのゲーム部分は無事完成したので一連の記事はこれにて終了となります。お疲れ様です。最後に今回作成したサンプルをアップロードしたので、興味があれば開いてみてください。
ただし、それにより何らかの損害が生じた場合、当ブログでは一切の責任を負わないため、自己責任でお願いいたします。
Tetris.7z(Googleドライブ)
また、ファイルを軽くするためスターターコンテンツを削除しています。なので壁が真っ黒になっています。
ただし、それにより何らかの損害が生じた場合、当ブログでは一切の責任を負わないため、自己責任でお願いいたします。
Tetris.7z(Googleドライブ)
また、ファイルを軽くするためスターターコンテンツを削除しています。なので壁が真っ黒になっています。
-目次-
Part.00.説明
Part.01.キューブの作成
Part.02.フィールドの作成
Part.03.様々な形のブロックの作成
Part.04.カメラとブロックの配置
Part.05.ブロックの移動処理
Part.06.ブロックの接地処理
Part.07.ライン消去処理
Part.08.自動落下とゲームオーバー処理
Part.01.キューブの作成
Part.02.フィールドの作成
Part.03.様々な形のブロックの作成
Part.04.カメラとブロックの配置
Part.05.ブロックの移動処理
Part.06.ブロックの接地処理
Part.07.ライン消去処理
Part.08.自動落下とゲームオーバー処理
0 件のコメント:
コメントを投稿