我正在制作一个程序,你可以在窗体中从一个瓷砖移动到另一个瓷砖。所以为了做到这一点,我想使用面板,每个面板都有一个标签。检测碰撞。我们的目标是能够找到随机产生的生物,不管怎么做。
所以我有一张地图图片。我分成了多个瓷砖。所以使用这段代码我创建了瓷砖地图所需的图片框,但是我想添加一个大块的角色,我该怎么办? 我也希望能够移动那个角色标签,我该如何解决这个问题。 并且还为贴砖添加标签,以便角色无法前往那里。
private void Form1_Load(object sender, EventArgs e)
{
int tileWidth = 30;
int tileHeight = 30;
int tileRows = 30;
int tileCols = 30;
using (Bitmap sourceBmp = new Bitmap("D:\\900x900.jpg"))
{
Size s = new Size(tileWidth, tileHeight);
Rectangle destRect = new Rectangle(Point.Empty, s);
for (int row = 0; row < tileRows; row++)
for (int col = 0; col < tileCols; col++)
{
PictureBox p = new PictureBox();
p.Size = s;
Point loc = new Point(tileWidth * col, tileHeight * row);
Rectangle srcRect = new Rectangle(loc, s);
Bitmap tile = new Bitmap(tileWidth, tileHeight);
Graphics G = Graphics.FromImage(tile);
G.DrawImage(sourceBmp, destRect, srcRect, GraphicsUnit.Pixel);
p.Image = tile;
p.Location = loc;
p.Tag = loc;
p.Name = String.Format("Col={0:00}-Row={1:00}", col, row);
// p.MouseDown += p_MouseDown;
// p.MouseUp += p_MouseUp;
// p.MouseMove += p_MouseMove;
this.Controls.Add(p);
}
}
}