gpt4 book ai didi

c# - 为什么我不能从我的列表中抽取 1 个以上的敌人?

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:31 24 4
gpt4 key购买 nike

我的类(class):

public Enemy(Texture2D texture, int delay, int elapsedTime, int frameX, int frameY, float X, float Y, float gravity, float speedX, float speedX2) : base(texture, delay, elapsedTime, frameX, frameY, X, Y, gravity, speedX, speedX2)
{
this.enemyPos = new Vector2(X,Y);
}

public void Draw(SpriteBatch sp)
{
sp.Draw(texture, enemyPos, sourceRect, Color.Red);
}

在我的主类中,我创建了我的列表并创建了 10 个敌人:

List<Enemy> lista = new List<Enemy>();
for(int i = 0; i < 10; i++)
{
enemy = new Enemy(Content.Load<Texture2D>("animation"), 500, 0, 0, 0, 100*i, 0, 1, 4f, 4f);
lista.Add(enemy);
}

然后我试着画它们

foreach(Enemy enemy in lista)
{
enemy.Draw(spriteBatch);
}

我得到的结果是我只看到最后一个被绘制的。我对编程很陌生,所以任何帮助都会有所帮助。

最佳答案

我已经解决了我的问题。问题是我没有更新我所有的敌人……我只更新了我创建的其中一个敌人,这解释了为什么我只能看到我创建的 10 个敌人之一。我用 foreach 循环解决了我的问题,该循环在每次更新时遍历我的所有敌人。

foreach(Enemy e in lista)
{
e.Update(player);
e.updateAnimation(gameTime);
e.Collision(gameTime, map.CollisionTiles);
}

关于c# - 为什么我不能从我的列表中抽取 1 个以上的敌人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49539513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com