0

Windows Phone 7.1 用の XNA ベースの 2D ゲームを開発しています。私の要件は、フリックの量と角度に基づいてオブジェクトをフリックすることです。オブジェクトは垂直方向の発射体の動きでアニメーション化されます。たとえば、目の前に湖があり、そこに石を投げ入れたいとします。人間の目であるカメラで同じ動きを再現する必要があります。

カバーする距離には 3 つのレベルがあります。Y 軸でカバーされる距離は、X 軸でカバーされる距離よりも長くなります。

水平 (X) 軸で発射体の動きを表す方程式はたくさんありますが、Y 軸で発射体の動きを表す方程式はありません。

X座標とY座標でこの発射体の動きを実現する方法はありますか?

4

1 に答える 1

1

Vector2角度の代わりにを使用すると、シンプルで正確な非常に初歩的な物理エンジンを実装できます。

フリックするオブジェクトには と がVector2 VelocityありVector2 Positionます。

次に、マウス間の距離を a として にVector2追加Velocityし、Velocityをすべてのフレームに追加してから、Position重力を追加します。

実装例を次に示します。

public class FlickObject
{
    public Vector2 Velocity;
    public Vector2 Position;

    public FlickObject () {}

    public void Update(GameTime t)
    {
        Position += Velocity;
    }
}

ゲーム クラスでは (ユーザーがオブジェクトをフリックしたとき):

flickObject.Velocity += FlickDistance;

FlickDistanceマウス (または計算方法) とオブジェクトの間の距離はどこにありますか。

最後に、重力を追加します。

flickObject.Velocity += new Vector2(0, GRAVITY);

どこGRAVITYに正の値が設定されています。

于 2012-10-16T22:12:02.873 に答える