0

C#/.NET ( Windows Forms )でゲームを開発しています。ゲームのプレイ中に、オブジェクトがある点から別の点へ (左から右へ) 移動するシナリオがあります。右側の点の座標は固定されています。ただし、(右に移動する) オブジェクトの位置は事前にわからないため、その座標も事前にわからないため、パスをハードコーディングすることはできません。

まっすぐではなく、オブジェクトを左の点から右の点に曲線的に移動するパス ( Angry Birdsで鳥を投げるように) を生成したいと考えています。

以下は、シナリオを理解するのに役立つ画像です。

ここに画像の説明を入力してください

この種のタスクを実行するためのアルゴリズムまたはAPIはありますか?

4

4 に答える 4

2

オブジェクトの物理的な軌跡を計算できます。あなたが探しているもののための簡単な式は、初速度を持ち、抗力も風もなしに重力を受けるオブジェクトの動きです。この軌道は放物線です。

初速度と重力が与えられると、パスは固定されます。軌道方程式を解いて、投球後のある時点でのターゲット x、y またはオブジェクトの位置を取得できます。

于 2012-05-14T17:53:59.230 に答える
1

非標準的な楕円の弧を描く必要があります。ウィキペディアの記事Ellipseを読むと、それを達成するためのいくつかの興味深い方法が見つかりますが、これで始めることができます。

ここに画像の説明を入力してください

「a」と「b」は半径です。

したがって、式をリファクタリングしてXを分離し、もう一度リファクタリングしてYを分離します...

于 2012-05-15T16:14:06.300 に答える
1

これはそれほど難しいことではありません。オブジェクトを移動する必要がある場合は、まずその座標を取得します (この時点でわかっています)。発射体の運動方程式を使用してその経路の方程式を取得し、その経路に沿って移動します。

于 2012-05-14T17:50:16.370 に答える