VProjectカッコカリ 31:敵アーチャーの狙い力向上 (+GMでのベクトルの話)
今回は、敵アーチャーがプレイヤーの色々な部分を狙えるようにしました。
今まで
アーチャーはプレイヤーの中心部分しか狙ってきませんでした。
新
アーチャーがプレイヤーの当たり判定の四隅も狙えるようになりました。
プレイヤーの当たり判定の四隅(または中心)のうち、
斜線が通る所だけが
狙い場所の候補になり、
最終的には、
その中で最もアーチャーから近い地点が
狙う場所に決定します。
また、矢が発射される最初の位置が数ドットずれていることが判明したので、
正しい位置に修正しておきました。
この数ドットのずれは、
プレイヤーの端っこを狙ったはずなのに、
なぜか当たらない、
という事が今回の変更後起きたことにより判明しました。
記録
https://twitter.com/nakamoooooo/status/1522550109300428800
余談:gamemakerで、複数の位置の扱い方
gamemakerには、複数のインスタンスの中で
最も任意の点と近い物を探す、みたいな機能はあるのですが
「位置」しかない物で、それと同じこと
(複数の位置ベクトルの中から、最もある点に近い点を求める)
を行うことができなくて、自力でコードを書いてなんとかしたのですが
gamemakerで複数の位置ベクトルを上手く扱うには
どういう手段が良いんでしょうね。
複数の位置ベクトルは、
x座標の配列とy座標の配列を使って表現しました
最も近い位置を求めるのに
律儀に二つの距離を求めて、比較して
というのを繰り返しました
gmlマニュアル見てもベクトルに特化した関数やデータ型みたいなのが見つからなかったのでこうしました