我正在写一个简单的游戏 - 蛇。我想有背景和我的蛇。我认为最好的方法是使用两个图片框(一个有背景,第二个 - 透明,上面有蛇)。
这是个好办法吗?以及如何将几个小图像(蛇的片段)放在不同位置的一个图片框上(只需将像素(一个接一个)从图像复制到图片框,或者也许有最快的方法 - 将所有图像放在正确的位置)?我现在有带有背景(父)和另一个透明(子)的图片框。
结果应该是这样的:
我做了类似的东西(感谢@dotTutorials),但我的蛇的片段比原始图像大一点,cookie 更小。哪里可能有问题?
绘图代码:
public Bitmap PrinPlayground()
{
char[,] tempPitch = play.getPitch();
Graphics g = pb2.CreateGraphics();
Bitmap bitmap = new Bitmap(512, 512);
Graphics BBG = Graphics.FromImage(bitmap);
Bitmap head = CookieSnake.Properties.Resources.head;
Bitmap body01 = CookieSnake.Properties.Resources.body01;
Bitmap tail = CookieSnake.Properties.Resources.tail;
Bitmap cookie = CookieSnake.Properties.Resources.cookie;
BBG.Clear(Color.Transparent);
for (int i = 0; i < 16; i++)
for (int j = 0; j < 16; j++)
{
if (tempPitch[i, j] == 'H')
{
BBG.DrawImage(head, new Point(32*j, 32*i));
}
else if (tempPitch[i, j] == 'B')
{
BBG.DrawImage(body01, new Point(32*j, 32*i));
}
else if (tempPitch[i, j] == 'T')
{
BBG.DrawImage(tail, new Point(32 * j, 32 * i));
}
else if (tempPitch[i, j] == 'C')
{
BBG.DrawImage(cookie, new Point(32 * j, 32 * i));
}
}
g.DrawImage(bitmap, new Point(0,0));
return bitmap;
}
结果: