一款简单的滑动拼图






4.23/5 (5投票s)
操纵 WinForms 控件制作一个简单的拼图游戏
引言
这篇文章解释了如何制作一个简单的拼图游戏,并让一只可爱的猴子开怀大笑。:-)
背景
这个程序非常简单,主要基于位置数学和 Bitmap
对象的 Clone
方法。我做过一个更酷的版本,但不小心用 Shift + Del 删掉了 :-O ...oooooooooooh! 等我头脑清醒一些,我会再做一遍。但现在,你可以玩玩这个。它还不错。
Using the Code
这个应用程序最重要的部分是 gettokenpictures()
方法。在这里,Bitmap
对象的 Clone
函数被用来将主图像分割成 60x60 的小块,并将图像大小设置为 300x300(这给我们 5x5 的 25 个小块)。
实际上,通过拉伸图像来使其适应主PictureBox的大小来设置图像尺寸。
mainpic.Size = new Size(300, 300);
private void gettokenpictures()
{
mainpic = new PictureBox();
mainpic.Size = new Size(300, 300);
mainpic.Location = new Point(0, 0);
// Image.FromFile("main.jpg");
mainpic.Image = JigsawCS.Properties.Resources.Main;
mainpic.SizeMode = PictureBoxSizeMode.StretchImage;
int top = 0;
int left = 0;
int k = 0;
Bitmap bmp = new Bitmap(mainpic.Image);
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
PictureBox tokenpic = (PictureBox)tokens[k];
if (k == 24)
tokenpic.Image =JigsawCS.Properties.Resources.blank;
// Image.FromFile("blank.jpg");
else
tokenpic.Image = bmp.Clone(new Rectangle(left, top, 60, 60),
System.Drawing.Imaging.PixelFormat.DontCare);
left += 60;
k++;
}
left = 0;
top += 60;
}
}
所以这行代码
tokenpic.Image = bmp.Clone(new Rectangle(left, top, 60, 60),
System.Drawing.Imaging.PixelFormat.DontCare);
从主图像的矩形部分创建一个图像,并将其分配给一个token,也就是一个PictureBox。使用一个简单的循环来操作偏移量(左侧和顶部)。
你可以通过将自己的图像上传到应用程序的资源中,或者将其保存在你选择的位置来添加自己的图像。
行:
mainpic.Image = JigsawCS.Properties.Resources.Main;
在上面的代码中设置图像,你可以在运行时或之前进行。所以你可以拥有
mainpic.Image = JigsawCS.Properties.Resources.[You imagefile's name];
或
mainpic.Image = Image.FromFile([You imagefile's name]);
尽情享受吧!:-)
历史
- 2008年10月30日:初始版本
- 2023年3月6日:更新