放物線で自キャラを狙う敵を作れ(問題)
新人ゲームプログラマのさとし君。毎日一生懸命プログラムを書いています。ある日、携わっているプロジェクトの先輩プログラマーから次のような注文を受けました。
「さとし君、この敵キャラは石を投げて自キャラを攻撃してくるんだけど、この石が上手く自キャラに当たるような方向ベクトルを求めるプログラムを作ってくれないかな」
早速さとし君は仕様を確認しました:
作っているゲームは2Dで、敵キャラは空を飛びながら石を投げつけて自キャラを攻撃してきます。フィールドは右方向がX軸、上方向がY軸です。このフィールドには重力があり、その重力加速度はg(unit/s²)となっています。unitはこのゲームでの1単位の長さです。敵キャラは石を360度好きな方向に投げられます。投げる石の初速v0はどの角度でも同じです。
敵のキャラクタは原点にいるとして、自キャラの位置はP(Px,Py)だとします。自キャラはプレイヤーによって動かす事が出来ますが、敵キャラは石を投げる瞬間のプレイヤーの位置をターゲットにするとします。
以上のような仕様の時に、敵キャラが石を投げる方向ベクトルv0を算出するにはどういう式を立てれば良いか?というのがさとし君(そして問題に挑む皆さん)の課題です。
この問題は高校生以上で解く事ができます。僕の生業であるゲームプログラマは日々こういう仕様を満たすプログラムを沢山沢山作っています。皆さんもさとし君の立場になってみて、ゲームプログラマの日常をちょっと垣間見てみて下さい(^-^)
その他の問題についてはこちらからどうぞ:
この記事が気に入ったらサポートをしてみませんか?