• 拼图游戏 v1.1


    我一直对拼图游戏比较有兴趣,市面上卖的所谓“1000块拼图”也玩过不少,不过玩那个太占地方,后来也不再买了,同时也就萌生了在电脑上玩拼图的想法。

    现在虽然有很多拼图游戏,但能大多数只能支持几十或几百块拼图,很少能支持上千块拼图的游戏。

    后来,我就利用 Direct2D 自己实现了一个拼图游戏,可以流畅的支持最高 1200 块的拼图(更高其实也可以支持,但是感觉已经足够了),拼图碎片之间也可以自动吸附,还可以设置吸附到背景。游戏界面如图 1 所示。

    图 1 游戏界面

    一、系统要求

    拼图游戏是使用 C# 编写的,使用 SharpDX 类库实现游戏界面。

    最低系统要求是 Windows 7,需要 .Net Framework 4.5 的支持。一些游戏特效需要 DirectX 11.1 的支持,但不影响游戏过程。

    二、游戏介绍

    游戏的工具栏如图 2 所示。

    图 2 工具栏

    基本的游戏操作是:

    • Ctrl + 鼠标左键单击,可以将拼图放到最底层(不会遮挡其它拼图)
    • 鼠标右键单击,顺时针旋转拼图(如果允许的话)
    • Shift + 鼠标右键单击,逆时针旋转拼图
    • 鼠标滚轮,上下滚动界面
    • Shift + 鼠标滚轮,左右滚动界面
    • Ctrl + 鼠标滚轮,缩放界面

    2.1 新建、打开和保存游戏

    点击“新建游戏”按钮,会弹出“创建新游戏”窗口,如图 3 所示。

    图 3 创建新游戏

    通过“浏览”按钮选择一幅图片,该图片就将被作为拼图的图片使用。

    通过拖动“游戏难度”滑块,可以更改拼图碎片的数目。游戏难度被分为了四个级别,分别是:

    1. 普通,拼图碎片数从 2 到 200。
    2. 噩梦,拼图碎片数从 201 到 400。
    3. 地狱,拼图碎片数从 401 到 800。
    4. 炼狱,拼图碎片数从 801 到 1200。

    在挑战高难度拼图游戏时,请尽量使用高分辨率的图片,否则每块拼图碎片过小,会难以分辨。

    拖动“随机程度”滑块,可以改变拼图碎片的随机程度。随机程度越大,会导致拼图碎片的形状更加不规则,图 4 以“四边形”展示了不同的随机程度下,拼图碎片的形状。

    图 4 不同的随机程度

    勾选“允许拼图旋转”,会将拼图碎片随机旋转 90、180 或 270 度,在拼图过程中就可以利用鼠标右键旋转拼图碎片。

    勾选“吸附到正确位置”,那么如果将拼图碎片正确的摆放到与背景对应的位置,就会自动固定下来,不会再被拖动。

    最后是拼图形状下拉框,目前有四种拼图形状,如图 5 所示,可以依个人喜好自由选择。

    图 5 四种拼图形状

    当随机程度较大时,某些拼图形状可能产生一些问题,如图 6 所示。这仅仅是显示的问题,不会影响到游戏。

    图 6 随机度较大时可能产生的问题

    游戏存档会保存为 *.jig 格式,拼图游戏的所有相关信息都会被保存下来,不必担心打乱拼图碎片的位置。

    2.2 游戏辅助

    游戏缩略图窗口如图 7 所示,其中显示了完整的图片。在缩略图窗口中,可以鼠标右键拖动缩放缩略图,鼠标左键拖动缩略图。

    图 7 游戏缩略图

    背景图片指的是图 1 中拼图后面的图片虚影,它提示了每个拼图碎片的正确位置。如果在创建新游戏的时候勾选了“吸附到正确位置”,那么将拼图碎片拖动到对应的背景图片位置时,就会自动吸附。背景图片的透明度和背景颜色可以在游戏设置中更改。

    游戏中可以切换只显示边框拼图碎片(隐藏中心位置的图片),以及在 10% 至 400% 间任意缩放游戏界面。工具栏右边会提示当前的游戏用时和游戏完成度。

    2.3 游戏样式

    在设置中,可以更改拼图游戏的样式,目前包含两个样式:简单和特效,如图 8 所示。

    图 8 游戏样式

    两种样式可以在设置中任意切换。简单样式比较节约资源;特效样式要消耗更多的资源,同时需要电脑支持 DirectX 11.1,某些电脑可能无法开启特效样式。

    关于特效样式的实现,可以参见《C# 使用 Direct2D 实现斜角效果》

    三、游戏下载

    游戏本身是绿色的,解压即可。

    最新版本下载:JigsawGame-1.1

    知识共享许可协议
    JigsawGameCYJB 创作,采用 知识共享 Attribution-NonCommercial-NoDerivatives 4.0 国际 许可协议进行许可。

    游戏的完整源代码可见这里,仅供个人学习使用。

    四、版本日志

    version 1.1

    2013.10.01 发布

    • 大幅提升了特效模式下,新建和打开游戏的效率
    • 减少了界面卡死问题
    • BUG 修复

    version 1.0.0.1

    2013.09.20 发布

    • 修复了一个小的界面问题

    version 1.0

    2013.09.20 首次发布

  • 相关阅读:
    three之位置检查
    Cesium之屏蔽光照方向受时间的影响
    H5实现聚合支付及踩坑 广东靓仔
    聚合支付设计方案 广东靓仔
    nuxt.js使用vuei18n实现多语言,SSR 广东靓仔
    17. 电话号码的字母组合(dfs)
    sql 笔记
    215. 数组中的第K个最大元素(快排,堆排序)
    c++ print rapidjson
    堆排序
  • 原文地址:https://www.cnblogs.com/cyjb/p/JigsawGame.html
Copyright © 2020-2023  润新知