首页 > 解决方案 > Monogame中的圆形粒子效果

问题描述

我是 C# 和 Monogame 的新手,我正在尝试创建一种“通灵”能力的效果,用户按下一个键,就会从他们的位置发出圆形光环爆炸。我只是想在设置位置和所有这些之前让实际的爆炸工作,但我的问题是当试图让所有粒子从圆的原点移到外面时。

我从来没有使用过圆形,只使用过矩形,所以我对此的了解非常基础。您可能会从 youtube 频道认出代码,那是因为我一直在尝试从任何可以学习的地方学习,大部分时间都将我带到 youtube,因为视频演示效果最好,但我离题了。

到目前为止,这是我的粒子生成器代码。

namespace Particles
{
class ParticleGenerator
{
    Texture2D texture;
    float spawnWidth;
    float density;

    List<Particles> particles = new List<Particles>();

    float timer;

    public ParticleGenerator(Texture2D newTexture, float newSpawnWidth, float newDensity)
    {
        texture = newTexture;
        spawnWidth = newSpawnWidth;
        density = newDensity;

    }

    public void createParticle(GraphicsDevice graphics)
    {

        particles.Add(new Particles(texture, new Vector2(graphics.Viewport.Width / 2 , graphics.Viewport.Height /2), new Vector2(5, 1)));

    }

    public void Update(GameTime gameTime, GraphicsDevice graphics)
    {
        timer += (float)gameTime.ElapsedGameTime.TotalSeconds;
        while (timer > 0)
        {
            timer -= 1f / density;
            createParticle(graphics);
        }

        for (int i = 0; i < particles.Count; i++)
        {
            particles[i].Update();
            if (particles[i].Position.Y > graphics.Viewport.Height)
            {
                particles.RemoveAt(i);
                i--;
            }
        }
    }

    public void Draw(SpriteBatch spriteBatch)
    {
        foreach (Particles particle in particles)
        {
            particle.Draw(spriteBatch);
        }
    }

}

}

非常感谢您的帮助。

标签: c#monogameparticles

解决方案


推荐阅读