作者sbrhsieh (偶尔想摆烂一下)
看板java
标题Re: [问题] 感觉有难度的拼图0.0a
时间Tue Jan 12 00:58:30 2010
※ 引述《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
1F:推 carlcarl:不过合并出来的元件有可能也是不规则的 像L形 01/12 01:09
2F:→ carlcarl:这种形状要做元件 就会遇到之前跟那切法一样的问题 01/12 01:11
3F:→ carlcarl:另外图片的话 它不是固定几种 而是可以使用者上传这样~ 01/12 01:13
4F:→ sbrhsieh:我本来就是针对拼布是不规则外型来讨论。 01/12 01:20
我的意思是只要每一张不规则型拼布的图以支援透明度的图档格式存在,就容易
做成元件(绘制外观、滑鼠点击测试都容易)。
如果要做到让 user 上选择自己喜爱的图片来玩,假如这图片的长宽是依照所要
裁切的方式有所限制,那要实现也不会太难,只要把预先切割好的每个小拼布以
特定颜色存档下来(一样要存成有透明度的图档格式,alpha 值要用来作遮罩)。
※ 编辑: sbrhsieh 来自: 218.173.128.202 (01/12 01:28)