题
我面临着一个在游戏设计中可能非常常见的问题。
- 假设我们有一个 2D 世界
- 世界的大小是 M x N 矩形
- 这个世界可能包含一些物品
- 这些项目有 (x,y) 坐标
- 可以通过物理上(m x n)大的窗口浏览世界。
- 浏览器窗口可以放大/缩小
- 浏览器窗口可以在世界矩形的范围内向上/向下+左右平移。
我应该如何实施这个?我特别关心浏览器窗口。谁能推荐一些好的读物?
这不是作业——这更像是我给自己设定的一项任务。
其他提示
实现它就像使用特殊标记实现 Google 地图一样。
基本上,您将一个区域的矩形子集映射到另一个矩形,即。浏览器窗口。这本质上只是两个操作 - 一种是平移,用于在世界中定位查看区域,然后是一种缩放,用于获取任意可视区域并将其缩放到窗口。与此不同的是放大和缩小的问题,这本质上是修改查看区域的大小。
在游戏开发中,有多种方法可以解决这个问题。通常,您会自定义视图投影来显示您需要的尽可能多的世界(即从世界坐标转换为观看坐标(通常是正交投影),然后简单地平移世界或视图以放置视口,使其指向您想要看到的内容。如果您正确设置了对象的位置,3D 硬件将绘制您期望的内容。
您也许可以摆脱 dhtml,但 flash 或 silverlight 会更容易实现这样的事情。
看一下后面的代码 谷歌地图 以获得一些灵感。他们所做的事情与你在纯 html 中想要的类似。
不隶属于 StackOverflow