0

マウスの位置にエミッターを作成するパーティクル エンジンがあります。

particleEngine.EmitterLocation = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);

これは、Game1.cs の Update メソッドにあります。

跳ねる物理と Texture2D テクスチャを備えた Ball.cs という別のクラスがあります。Vector2 の位置。

代わりに、エミッタ/パーティクルをボールに追従させるにはどうすればよいですか?

4

1 に答える 1

0

パーティクル エンジンへの参照を Ball クラスに渡し、EmitterLocation をボールの位置に設定します。

例:

Game1、初期化 (例):

ParticleEngine particleEngine = new ParticleEngine();
Ball ball = new Ball(particleEngine);

ボールクラスでは:

class Ball
{
    ParticleEngine particleEngine;
    Vector2 position;

    public Ball(ParticleEngine particleEngine)
    {
        this.particleEngine = particleEngine;
    }

    public void Update(GameTime gameTime)
    {
        //Update position
        particleEngine.EmitterLocation = new Vector2(this.position.X, this.position.Y);
    }
}

パーティクル エンジンがどのように機能するか、またはコード構造についてはわかりませんが、提供された情報を使用して、理解しやすい例を実装するために最善を尽くしました。

于 2013-07-26T12:31:31.780 に答える