我一直對拼圖游戲比較有興趣,市面上賣的所謂“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 創建新游戲
通過“瀏覽”按鈕選擇一幅圖片,該圖片就將被作為拼圖的圖片使用。
通過拖動“游戲難度”滑塊,可以更改拼圖碎片的數目。游戲難度被分為了四個級別,分別是:
- 普通,拼圖碎片數從 2 到 200。
- 噩夢,拼圖碎片數從 201 到 400。
- 地獄,拼圖碎片數從 401 到 800。
- 煉獄,拼圖碎片數從 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
JigsawGame 由 CYJB 創作,采用 知識共享 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 首次發布