2011-05-11 30 views
4

画我打算使用SVG绘制“地图”(城市,河流,道路等)。因此,所有对象都将被绘制在一张svg图像中,并且只有那些位于可视区域内的对象才会被显示(可见)。SVG在游戏开发的地图与地图移动

问题1:

是否合理的做法?或者我会更好地关心需要绘制哪些特定对象?

一个我想要实现的功能是“拖”的地图。计划如下工作:用户将鼠标光标指向地图内的某处,按鼠标按钮并移动鼠标。所以有些物体会从可视区域出来,而其他物体会被画出来。

问题2:

是更好地改变可见对象的坐标,以便根据鼠标移动转移呢?或者最好改变“可视区域”(猜测,这应该可以通过viewbox svg-object参数操作)?

非常感谢!任何想法都欢迎!

回答

0

我不是一个专业人员,也不是我非常好的程序员,但是我之前和svg地图一起工作过,我认为这是一个合理的方法,svg可以容纳很多数据,如果你有一个好的渲染器它应该能够跟上。至于问题2,我想说的是改变视图框,否则你会发现自己改变每个svg对象的坐标,很多人已经为svg图像制作平移代码,所以做一个快速的谷歌搜索,这应该会帮助你。

3

听起来有点像Polymaps给我。如果您打算提供一个巨大的svg主文档,那么平铺的polymaps方法更可取。

+0

+1链接到Polymaps。很有意思。 – luniv 2011-05-27 22:06:57

0

最好的方法会受到SVG的大小和复杂程度的巨大影响。

您可能希望创建快速实验用更大,更复杂的样图宜早不宜迟,和钻机它做简单的平移(你可以花时间到手艺自己之前尝试svgpan)。它不需要是一个完全一致的地图 - 你可以重复一堆有代表性的形状,仍然可以得到一个好的测试用例。

如果您的示例地图在您关心的浏览器中平滑过渡,则可以避免平铺(或以其他方式显示整个部分)的复杂性。

如果你觉得生涩又慢,看着Polymaps将是下一个地方去寻找@Erik达尔斯特伦的建议(但涉及到很多服务器端的工作,所以这将是很好的避免)。

+0

顺便说一下,SVG对于这种事情来说是非常有用的,只要你能获得你所需要的客户端性能。 – peteorpeter 2011-05-12 13:14:56