我有一个我正在开发的游戏,我将粒子效果作为一个单独的类
public class Explosion
{
private List<Particle> Particles;
private const int particle_Count = 100;
public Explosion(Vector2 location) {
Random random = new Random();
Particles = new List<Particle>(particle_Count);
for(int i = 0; i < particle_Count; i++)
Particles.add(new Particle(location, new Vector2(random.NextDouble() * i,
random.NextDouble() * i));
}
}
现在,我的游戏中需要有几种不同类型的爆炸,但它们的变化很小(实际上是一个 Vector2 对象之间的区别(它只是一个存储两个坐标和一些辅助函数的对象)不熟悉 XNA))
我的问题是,因为 Random 只能在我进入构造函数后才能访问,我如何对这种爆炸进行变化?
我应该为每次爆炸创建一个新课程吗?(这似乎没有必要,因为爆炸之间的变化很小)
我是否应该重载函数以为每个不同的爆炸采用单独的参数(可能是 int)?
我是否应该通过构造函数直接传递 Vector2 (这对我来说似乎会破坏良好的 OOP 原则)
还是有另一种方法可以解决这个问题,我只是没有看到。
任何帮助将不胜感激,我喜欢第一次做正确的事情,这是我申请的重要组成部分。
谢谢。