3

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

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

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

这不是家庭作业——它更像是我让自己完成的任务。

4

4 回答 4

1

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

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

于 2009-10-20T13:37:52.407 回答
1

http://web.archive.org/web/20100111062144/http://www.parallelrealities.co.uk/tutorials/

于 2009-10-19T19:17:02.377 回答
1

像使用特殊标记实现谷歌地图一样实现它。

于 2009-10-19T19:18:52.620 回答
0

您可能能够摆脱 dhtml,但 flash 或 silverlight 会更容易实现这样的东西。

查看谷歌地图背后的代码以获得一些灵感。他们正在做的事情类似于你在纯 html 中想要的东西。

于 2009-10-19T19:16:31.643 回答