P5.エアホッケー.18「プレーヤーのマレットでパックを跳ね返す(3/3)」
反射ベクトルとして出したパックの "myDir" に自マレットの "myDir"(これから作る)を加えれば、マレットの勢いがパックにのり、より自然な反射スピードになるはず。さあ、自マレットにも "myDir" をセットプロパティー!
自マレットのノードトゥリー("nMalletPlayer")に修正
❶ "nMalletPlayer" のOn Init
部にプロパティ "myDir" を加えておく。これは自マレットの秒速を入れるもの。パックにも同名の "myDir" があるが、プロパティはオブジェクトが違えば別物扱いとなる。プロパティはオブジェクト毎の管理になっている。
❷ On Update
部、Delta 秒を掛ける前の Vector を自マレットの "myDir" にセット。どこの Vector を入れているか注意してみてくれ。
- 自身のオブジェクトが持つ "myDir" なので、オブジェクト欄は空欄。
- "myDir" は秒速なので Delta 秒を掛ける前の数値をセットする。
パックのノードトゥリー("nPack")に修正
反射ベクトルを出した最後の所に自マレットの "myDir" を加算する。下図参照。
これで反射ベクトルに自マレットのスピードが加算されるので、ガツーンと当てれば、ドーンと弾ける。やってみてくれ。
テストプレイ
なったろ? じゃまた。
本日のポイント
- 同名プロパティでもオブジェクトが違えば別物。プロパティのオブジェクト欄注意。
〇 次回、敵のマレットをどうのこうのしようか。