前回からの続きです。
今回は様々な形の操作できるブロックを作っていきます。
この Pawn は生成される際に、ランダムで形を決める仕様とします。
ブロックに色をつけるため、色情報を格納する配列を用意しておく必要があります。
Tetris ブループリントを開き、MyBlueprint → Variables の「+」ボタンをクリックし、以下の変数を作成。
Construction Script を開き、壁を表示させる処理の後に以下の処理を組みます(BoardLayout が接続されている ForEachLoop の Completed からピンを伸ばす)。
各色は適当につけているので、好みの配色があれば自由に変更してください。
レベル編集画面に戻り、Contents Browser → Add New → Pawn を選択し、Pawn クラスを作成。ここでは名前を Blocks としました。
Blocks をダブルクリックで開き、以下の変数を追加。
AdditionalPositions にはブロックを形づくる座標データを格納します。
下の図のように、各ブロックの形は中心の(0,0)座標を基準とし、追加の座標で構成されるという考え方に基づいています。
Components → Add Component → Instanced Static Mesh を追加し、Details → Static Mesh に BlockStaticMesh を指定します。
具体的には、ブロックの種類(数字)と色情報を入れると AdditionalPositions に対応する座標が追加され、ブロックの色も設定される処理となります。また、BlockType への値をセットする処理も追加しましょう。
関数名は CreateBlockShape とし、以下のように組みました。
BlockType の分岐で 2 からの接続になっているのは、ゼロを空間、1 を壁として定義しているからです。
MyBlueprint → Functions → ConstructionScript をダブルクリックで開き、以下の処理を組みます。
Tetris の ColorsOfType と BlockSize を使うためキャストしますが、その際に今後も使えるように CastToTetris という変数へ Promote しています。
これでブロックの初期化が完成しました。
試しにレベル編集画面に戻り、レベル上に Blocks を配置してみましょう。
ドラッグするとブロックがランダムに変形するのが確認できるはずです。
この Pawn は生成される際に、ランダムで形を決める仕様とします。
1.色情報を格納する配列の作成
テトリスのブロックは種類によって色が違います。ブロックに色をつけるため、色情報を格納する配列を用意しておく必要があります。
Tetris ブループリントを開き、MyBlueprint → Variables の「+」ボタンをクリックし、以下の変数を作成。
変数名 | 型 | 初期値 | 説明 |
ColorsOfType | Linear Color(配列) | 色情報を格納する配列 |
Construction Script を開き、壁を表示させる処理の後に以下の処理を組みます(BoardLayout が接続されている ForEachLoop の Completed からピンを伸ばす)。
各色は適当につけているので、好みの配色があれば自由に変更してください。
2.ブロック Pawn の作成
それでは操作できるブロックを作っていきましょう。レベル編集画面に戻り、Contents Browser → Add New → Pawn を選択し、Pawn クラスを作成。ここでは名前を Blocks としました。
Blocks をダブルクリックで開き、以下の変数を追加。
変数名 | 型 | 初期値 | 説明 |
BlockType | Integer | 0 | ブロックの種類を記録しておく |
AdditionalPositions | Vector(配列) | ブロックの形を記録しておく |
AdditionalPositions にはブロックを形づくる座標データを格納します。
下の図のように、各ブロックの形は中心の(0,0)座標を基準とし、追加の座標で構成されるという考え方に基づいています。
Components → Add Component → Instanced Static Mesh を追加し、Details → Static Mesh に BlockStaticMesh を指定します。
3.各ブロックを形づくる関数の作成
Blocks に各ブロックを形づくる関数を追加します。具体的には、ブロックの種類(数字)と色情報を入れると AdditionalPositions に対応する座標が追加され、ブロックの色も設定される処理となります。また、BlockType への値をセットする処理も追加しましょう。
関数名は CreateBlockShape とし、以下のように組みました。
BlockType の分岐で 2 からの接続になっているのは、ゼロを空間、1 を壁として定義しているからです。
4.ブロックの初期化処理の作成
今作った関数を使いながら、初期化の処理を組みましょう。MyBlueprint → Functions → ConstructionScript をダブルクリックで開き、以下の処理を組みます。
Tetris の ColorsOfType と BlockSize を使うためキャストしますが、その際に今後も使えるように CastToTetris という変数へ Promote しています。
これでブロックの初期化が完成しました。
試しにレベル編集画面に戻り、レベル上に Blocks を配置してみましょう。
ドラッグするとブロックがランダムに変形するのが確認できるはずです。
-目次-
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 件のコメント:
コメントを投稿