我有一个类“子弹”,我使用方法CreateBullet()实例化,因为将有多个子弹我决定我应该制作子弹数组,虽然这没有用,我已经花了一小时试图解决它。
我在Initialize方法中调用的内容:
Bullet bullet[] = Bullet.CreateBullet[1]();
Bullet类:
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()
{
}
}
你能告诉我代码有什么问题吗?提前谢谢。
答案 0 :(得分:2)
通过这个,您可以创建一个包含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);
}
答案 1 :(得分:0)
你可以做这样的事情,不是你想要实现的目标,但它可能会激励你更多
用法
// 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();
}