Эффект круговой частицы в моногаме - PullRequest
0 голосов
/ 03 мая 2018

Я новичок в 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);
        }
    }

}

}

Большое спасибо за любую помощь.

...