【问题标题】:SVG in game development for map drawing with map movement游戏开发中的 SVG 用于通过地图移动绘制地图
【发布时间】:2011-05-12 21:12:49
【问题描述】:

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

问题 1:

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

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

问题 2:

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

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

【问题讨论】:

    标签: javascript html svg


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        单个 SVG 的大小和复杂程度会极大地影响最佳方法。

        您可能希望尽快创建一个更大、更复杂的示例地图的快速实验,然后对其进行装配以进行简单的平移(您可以先尝试svgpan,然后再花时间制作自己的地图)。它不需要是一个完全连贯的地图——你可以重复一堆有代表性的形状,仍然得到一个很好的测试用例。

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

        如果您发现它不稳定且缓慢,@Erik Dahlstrom 建议查看 Polymaps 将是下一个查看的地方(但这涉及更多的服务器端工作,因此最好避免)。

        【讨论】:

        • 顺便说一句,SVG 对于这种事情来说是很棒,前提是您可以获得所需的客户端性能。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-08
        • 2015-11-23
        • 2021-07-31
        • 1970-01-01
        相关资源
        最近更新 更多