0

我们正在使用 Visual Studio 10 为学校制作僵尸游戏。

我们想要随机生成 Zombies,也就是 PictureBoxes。所有这些图片框都需要自己的坐标,因为如果玩家的坐标与僵尸相同,则玩家需要损失HP。

我现在正在寻找这个功能 3 天,所以我想为什么不在这里寻求专业建议呢?

我们现在只有这段代码可以让一个(Picturebox)僵尸行走:

private void ZombieLopenOne()
        {
            // Begin Zombie Lopen
            int zombx = EenZombie1.Location.X;
            int zomby = EenZombie1.Location.Y;
            if ( zomby > 420 + EenZombie1.Height ) {
                zomby = -EenZombie1.Height;
                EenZombie1.Location = new Point(zombx, zomby);
            }
            else
            {
                zomby += 3;
                EenZombie1.Location = new Point(zombx, zomby);
            }
            // End Zombie Lopen

          }

你能帮助我们吗?

4

1 回答 1

0

您可以使用 a List<T>,它将包含所有僵尸。僵尸是一个名为 Zombie 的简单类。该类包含僵尸的 x 和 y 坐标。在窗体的 Paint-Event 中,程序循环遍历 List 中的所有元素并在窗口上绘制纹理。

在您的窗口代码中:

class Zombie {
   public Zombie(int x, int y) {
      this.x = x;
      this.y = y;
   }
   public int x;
   public int y;
}

List<Zombie> zombies;

//Constructor of your window
public MainWindow() {
   InitializeComponet(); //This is autogenerated by Visual Studio
   this.Paint += new PaintEventHandler(Paint);
   zombies = new List<Zombie>;
}

public void Paint(object sender, PaintEventArgs e) {
   foreach(Zombie zombie in zombies) {
      e.Graphics.DrawImage(/*Your zombie image*/, new Point(zombie.x, zombie.y));
   }
}

您可以使用类的方法添加和删除僵尸List<T>

于 2013-04-14T14:06:46.043 回答