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