如何在按钮点击的随机位置生成picturebox1的多个克隆?

时间:2013-04-14 13:19:17

标签: c# winforms

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

我们想随机生成Zombies,a.k.a。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

          }

你能帮助我们吗?

1 个答案:

答案 0 :(得分:0)

您可以使用List<T>,其中包含所有僵尸。僵尸是一个叫Zombie的简单类。该类包含僵尸的x和y坐标。在Form的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>类的方法添加和删除僵尸。