Re: [問題] 感覺有難度的拼圖0.0a
※ 引述《carlcarl (carl)》之銘言:
: http://www.jigzone.com/puzzles/9214A06831E?m=74250B5F46.8C4B931&z=6
: 這個我沒看錯的的話 應該是用java applet來做的
: 以這個來講 我的程度 可能只能做到 每塊都分成方形的
: 然後可能會設計一個框框來放置拼圖
: 我覺得這樣比較好做
: 我搞不太懂他幾個功能是如何實作出來的
: 1. 兩塊拼圖如何結合成一塊拼圖?
: 2. 如何分出這種形狀不規則的圖片?
: 這個我真的沒啥想法0.0||
: 能否有大大幫忙講解一下這兩個問題其中大致的概念??
如果不考慮怎麼切法會增加趣味性與合理性,我認為要作出這樣子的遊戲應該
不算太難(我指的是實作上不需要甚麼很複雜或不容易想的演算法)。
我沒有很仔細去玩這網站的各種功能,假設底圖只有固定幾種,拼布的形態也是
固定幾種,是可以預先依照拼布的形態與數量把一張大圖切割成多張小圖,存成
支援透明度的圖檔格式(比如 gif or png)。
最麻煩的工作是事先切圖並且記下每個拼布小圖間的相對位置。相對位置可以用
來判斷是否有兩個拼布已經接近正確接合的狀態(不需要拼布的碰撞測試)。滑鼠
點擊測試也可以容易地以 pixel 的透明度來完成。
至於拼布的結合,可以純粹以把多個拼布元件裝在 container 裡來作,由於
AWT/swing 的 component/container 是 Composite 模式,所以程式很容易做到
把裝載多張拼布元件的 container 也當作拼布。另外也可以真的在 runtime
把兩張拼布的圖畫在一張更大的圖,再以這張大圖製作一個拼布元件來替代原來
的兩個拼布元件,不過這作法要特別考慮到上一段提到的相對位置該如何處理。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.128.202
推
01/12 01:09, , 1F
01/12 01:09, 1F
→
01/12 01:11, , 2F
01/12 01:11, 2F
→
01/12 01:13, , 3F
01/12 01:13, 3F
→
01/12 01:20, , 4F
01/12 01:20, 4F
我的意思是只要每一張不規則型拼布的圖以支援透明度的圖檔格式存在,就容易
做成元件(繪製外觀、滑鼠點擊測試都容易)。
如果要做到讓 user 上選擇自己喜愛的圖片來玩,假如這圖片的長寬是依照所要
裁切的方式有所限制,那要實現也不會太難,只要把預先切割好的每個小拼布以
特定顏色存檔下來(一樣要存成有透明度的圖檔格式,alpha 值要用來作遮罩)。
※ 編輯: sbrhsieh 來自: 218.173.128.202 (01/12 01:28)
討論串 (同標題文章)