見出し画像

初心者ゲームつくる:鮮やかブロック、当たると消える【実践編】

かなりドツボにハマりました。
ボールとブロックの2つの動きをつくることになります。

「kill Z Volume」という便利なものを設置したら、ボールがそのエリアに接触すると破壊する壁なのですが、どうも普通のActorだと反応しない。

普通のActorのボールにphysicsをつけると反応するが、
それ以外は反応しない。やっかいなのは、physicsをつけると初速はあるが床におちて飛ばない。と愚痴から始まったが、まずはブロックを表示する方法を解説。

ブロックを生成する方法

どんなBlockを生成するかというと。

画像2

こんな感じの「Block」をつくります。ランダムで色を出すのは別のノードを加えているので。

画像3

一色でこのような「Block」をつくってみようと思います。

Actorを生成するノードは?

Actorを発生させるので、クラスと検索すると下記がでてきます。

画像4

画像5

「class」というとこから「Block」を選べば良いです。順番が逆になりましたが、「Block」をまずつくらないといけない。

元になるBlockをつくる。

ブループリントとからActorを選びます。

画像6

画像7

コンポーネントからCubeを選び、Yの長さを長く整形

画像7

一旦これでブロックは完成。
ここで作った名前を先程の、Acotor生成ブループリントで選ぶ。どういう生成をするか?ロジックが必要。

配置のメカニズム

繰り返しつくる作業をすればよいので、ループ処理を使います。

画像8

生成する場所を繰り返していけばよい。

まずは、indexで0を流す次の70☓0は0なので、Xが0となる。
次にindexが1を流すので、70となりxが70になる。
これでX軸の位置が決まる。0と1なので2回流れる。

画像9

こちらは、indexが-4なので、120☓ー4=480となる。
これでY軸の位置がきまる。

-4と0と4なので、総計9回。最初のLoopが2回なので、18回
18個のぼーるが生成される。 

画像10

こういうのができあがる。
Blockとの間の距離で壁にめり込んでいるが、そこは調整すれば問題ない。

画像11

Y軸を100で修正すると、

画像12

Blockがキレイに並びました。




この記事が気に入ったらサポートをしてみませんか?