65.9K
CodeProject 正在变化。 阅读更多。
Home

一款简单的滑动拼图

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.23/5 (5投票s)

2008 年 4 月 6 日

CPOL

1分钟阅读

viewsIcon

43324

downloadIcon

870

操纵 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日:更新
© . All rights reserved.