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

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

P5.エアホッケー.18「プレーヤーのマレットでパックを跳ね返す(3/3)」

f:id:ore2wakaru:20190529203739p:plain

反射ベクトルとして出したパックの "myDir" に自マレットの "myDir"(これから作る)を加えれば、マレットの勢いがパックにのり、より自然な反射スピードになるはず。さあ、自マレットにも "myDir" をセットプロパティー

自マレットのノードトゥリー("nMalletPlayer")に修正

 "nMalletPlayer" のOn Init部にプロパティ "myDir" を加えておく。これは自マレットの秒速を入れるもの。パックにも同名の "myDir" があるが、プロパティはオブジェクトが違えば別物扱いとなる。プロパティはオブジェクト毎の管理になっている。

f:id:ore2wakaru:20190529194030p:plain

 On Update部、Delta 秒を掛ける前の Vector を自マレットの "myDir" にセット。どこの Vector を入れているか注意してみてくれ。

f:id:ore2wakaru:20190529195553p:plain

  • 自身のオブジェクトが持つ "myDir" なので、オブジェクト欄は空欄
  • "myDir" は秒速なので Delta 秒を掛ける前の数値をセットする。
パックのノードトゥリー("nPack")に修正

反射ベクトルを出した最後の所に自マレットの "myDir" を加算する。下図参照。

f:id:ore2wakaru:20190529201759p:plain

これで反射ベクトルに自マレットのスピードが加算されるので、ガツーンと当てれば、ドーンと弾ける。やってみてくれ。

テストプレイ

なったろ? じゃまた。

本日のポイント
  • 同名プロパティでもオブジェクトが違えば別物。プロパティのオブジェクト欄注意。

 次回、敵のマレットをどうのこうのしようか。