我有一个类"Bullet",我使用方法CreateBullet()实例化,因为会有多个项目符号,我决定我应该将子弹变成一个数组,尽管这没有成功,我花了一个小时试图修复它。
我在初始化方法中调用的内容:
Bullet bullet[] = Bullet.CreateBullet[1]();
子弹类:
class Bullet
{
public float2 position;
public float angle { get; set; }
public float speed { get; set; }
public static Bullet CreateBullet()
{
Bullet bullet = new Bullet()
{
position = new float2()
};
return bullet;
}
public void Move()
{
}
}
你能告诉我代码有什么问题吗?提前谢谢你。
有了这个,你创建一个包含 5 个项目符号的数组:
Bullet[] bullets = new Bullet[5];
然后,您需要通过为每个数组条目创建一个项目符号来填充数组:
for (int i = 0; i < bullets.Length; i++)
{
bullets[i] = Bullet.CreateBullet();
}
您可以将此逻辑包装在函数中:
public Bullet[] CreateBullets(int amount)
{
Bullet[] bullets = new Bullet[amount];
for (int i = 0; i < bullets.Length; i++)
{
bullets[i] = Bullet.CreateBullet();
}
return bullets;
}
然后你可以使用一个函数来初始化数组:
public void Test()
{
Bullet[] bullets = CreateBullets(5);
}
你可以做这样的事情,不完全是你想要实现的目标,但它可能会激励你更多
用法
// Create your bullets
var bullets = new List<Bullet>();
// Create a raw/empty bullet with default properties
var newBullet1 = new Bullet();
// Create bullet with some initialized properties
var newBullet2 = new Bullet()
{
Angle = 35,
Position = 0,
Speed = 200
};
bullets.Add(newBullet1);
bullets.Add(newBullet2);
额外的乐趣
// Move all your bullets at once
foreach (var bullet in bullets)
{
bullet.Move();
}