我面临着一个在游戏设计中可能非常常见的问题。

  1. 假设我们有一个 2D 世界
  2. 世界的大小是 M x N 矩形
  3. 这个世界可能包含一些物品
  4. 这些项目有 (x,y) 坐标
  5. 可以通过物理上(m x n)大的窗口浏览世界。
  6. 浏览器窗口可以放大/缩小
  7. 浏览器窗口可以在世界矩形的范围内向上/向下+左右平移。

我应该如何实施这个?我特别关心浏览器窗口。谁能推荐一些好的读物?

这不是作业——这更像是我给自己设定的一项任务。

其他提示

实现它就像使用特殊标记实现 Google 地图一样。

基本上,您将一个区域的矩形子集映射到另一个矩形,即。浏览器窗口。这本质上只是两个操作 - 一种是平移,用于在世界中定位查看区域,然后是一种缩放,用于获取任意可视区域并将其缩放到窗口。与此不同的是放大和缩小的问题,这本质上是修改查看区域的大小。

在游戏开发中,有多种方法可以解决这个问题。通常,您会自定义视图投影来显示您需要的尽可能多的世界(即从世界坐标转换为观看坐标(通常是正交投影),然后简单地平移世界或视图以放置视口,使其指向您想要看到的内容。如果您正确设置了对象的位置,3D 硬件将绘制您期望的内容。

您也许可以摆脱 dhtml,但 flash 或 silverlight 会更容易实现这样的事情。

看一下后面的代码 谷歌地图 以获得一些灵感。他们所做的事情与你在纯 html 中想要的类似。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top