Javascript SVG在地图运动地图绘制游戏开发中的应用

Javascript SVG在地图运动地图绘制游戏开发中的应用,javascript,html,svg,Javascript,Html,Svg,我计划使用svg绘制一张“地图”(城市、河流、道路等)。因此,所有对象都将在一个svg图像中绘制,并且只有在可视区域内的对象才会显示(可见) 问题1: 这是否合理的做法?或者我更关心需要绘制哪些特定对象 我想要实现的一个特性是“拖动”地图。计划如下:用户将鼠标光标指向地图内的某个位置,按下鼠标按钮并移动鼠标。因此,一些对象将离开可视区域,而其他对象将被绘制 问题2: 更改可见对象的坐标以便根据鼠标移动移动它们是否更好?或者最好更改“可视区域”(猜测,这应该可以通过viewbox svg对象参数操

我计划使用svg绘制一张“地图”(城市、河流、道路等)。因此,所有对象都将在一个svg图像中绘制,并且只有在可视区域内的对象才会显示(可见)

问题1:

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

我想要实现的一个特性是“拖动”地图。计划如下:用户将鼠标光标指向地图内的某个位置,按下鼠标按钮并移动鼠标。因此,一些对象将离开可视区域,而其他对象将被绘制

问题2:

更改可见对象的坐标以便根据鼠标移动移动它们是否更好?或者最好更改“可视区域”(猜测,这应该可以通过viewbox svg对象参数操作实现)


非常感谢!欢迎任何意见

我不是专业人士,也不是很好的程序员,但我以前使用过svg映射,我认为这是一种合理的方法,svg可以保存大量数据,如果您有一个好的渲染器,它应该能够跟上。至于问题2,我想说的是继续改变视图框,否则你会发现自己改变了每个svg对象的坐标,很多人已经为svg图像制作了平移代码,所以做一个快速的谷歌搜索应该会对你有所帮助

听起来有点像。如果您打算提供一个巨大的svg主文档,那么最好使用平铺多边形映射方法。

最好的方法将受到单个svg的大小和复杂程度的极大影响

您可能希望尽早使用更大、更复杂的样例地图创建一个快速实验,并将其装配起来进行简单的平移(您可以在花时间制作自己的样例地图之前进行尝试)。它不需要是一个完全一致的映射-你可以重复一堆有代表性的形状,仍然可以得到一个好的测试用例

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

如果你发现它急促而缓慢,@Erik Dahlstrom关于查看Polymaps的建议将是下一个要查看的地方(但这涉及到更多的服务器端工作,因此最好避免)。

顺便说一句,SVG对于这类事情非常棒,只要你能获得所需的客户端性能。