瓷砖地图与人物和互动

时间:2018-03-12 19:15:21

标签: c# winforms

我正在制作一个程序,你可以在窗体中从一个瓷砖移动到另一个瓷砖。所以为了做到这一点,我想使用面板,每个面板都有一个标签。检测碰撞。我们的目标是能够找到随机产生的生物,不管怎么做。

所以我有一张地图图片。我分成了多个瓷砖。所以使用这段代码我创建了瓷砖地图所需的图片框,但是我想添加一个大块的角色,我该怎么办? 我也希望能够移动那个角色标签,我该如何解决这个问题。 并且还为贴砖添加标签,以便角色无法前往那里。

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);
        }
}

}

0 个答案:

没有答案