Я новичок в 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);
}
}
}
}
Большое спасибо за любую помощь.