我已经为2D策略游戏编写了一个家酿brew view_port类。摇摄(箭头键)和缩放(鼠标滚轮)做工精细,但我的观点一样,也家朝无论光标放置,如Google Maps or Supreme Commander放大鼠标(例如谷歌地图)
我就不告诉你细节如何实现缩放,甚至是使用什么语言:这都是无关紧要的。最重要的是缩放功能,它修改表示视图的矩形结构(x,y,w,h)。到目前为止,代码如下所示:
void zoom(float delta, float mouse_x, float mouse_y)
{
zoom += delta;
view.w = window.w/zoom;
view.h = window.h/zoom;
// view.x = ???
// view.y = ???
}
之前有人建议它,下面将不工作:
view.x = mouse_x - view.w/2;
view.y = mouse_y - view.h/2;
该图展示为什么当我试图向笑脸放大:
正如你可以看到当鼠标下方的物体被放置在叔他屏幕中心停在鼠标下面,所以我们停止缩放它!
如果你有一个数学头(你需要一个)任何帮助,这将是最感谢!
你能详细说明一下变量的含义吗? – WebF0x 2017-10-02 12:42:37