俺に解るように説明する "Armory Engine" 入門+

ゲームエンジン Armory Engine (Armory3D) の使い方を手探りで学んで入門しようって感じかな。

P5.エアホッケー.05「ゴール、ゴール、ゴール、ゴール、、、ゴーーーーーーール!」

f:id:ore2wakaru:20190508213347p:plain

ゴールの横幅は10m(のはず)。だからパックが自陣又は敵陣の壁に当たった時、「-4 ≦ パックのx位置 ≦ 4」なら跳ね返すんじゃなくてゴールとすればいいよね。パックの半径考えるから、±5じゃなくて±4ね。(ま、どっちでもいいけど)

判定がクソ地味・・・

パックに付けたスクリプトの修正から。まずは自陣ゴールのチェック。下図参照。

f:id:ore2wakaru:20190508202516p:plain

としておいて、"GOALka" の中身を書く。下図参照。

f:id:ore2wakaru:20190508205427p:plain

 どこでもいいので、空いている場所にOn Event "GOALka" を作成。

 こんなに長いのに、結局やってることは、「-4 ≦ パックのx位置 ≦ 4」のチェック。ほんと、ヴィジュアルスクリプトってクソだろ。なんとかしてくれ。

 上記を満たしてたら、"packAru"False にするんだけど、注意なのは、"packAru""Kami" オブジェクトが持っているってこと! ちゃんと選択するの、忘れないように。

 で、単に "packAru"False にしただけじゃパックが画面に残っちゃってるので、Remove Objectで自身を消せばいいと考えるんだけど、実はこれは間違いなんだ。

テストプレイ

まー、見た感じはこれで行けるんだけどね。試しにここまでで、[▶ Play] してみてくれ。(パックがなかなか自ゴールにはいらねーって時は、パックの "myDir" を x: 15, y: -20 とかに変更で)

f:id:ore2wakaru:20190508211506p:plain

  1. ゲーム始まって、スペースキーでパックが出る。
  2. パックが出てる時はスペースキーを押してもパックは出ない。
  3. ゴールに入ったら、パックが消える。
  4. で、スペースキーを押せば、またパックが出る。

こんな風になるはずだ。(またメンドクサイのでGifは無し。)

一見、これで良さそうなんだけどね。ダメなんだ。なんでかっていうと、実はスポーンさせる時、シーンをスポーンさせているからだ。パックはシーンにあるオブジェクト。だから、オブジェクトだけを消しても、なんとシーン(シーンの元)が残ってしまっている状態なんだ。

ちゃんと元から消さないとね。

次回その辺を修正する。やっぱり頭痛が痛い。

本日のポイント
  • 頭が痛い時は無理しない。

 次回、スポーンさせたシーンを消す方法。