小编wil*_*ast的帖子

缩放鼠标(例如谷歌地图)

我为2D策略游戏编写了一个自制的view_port类.摇摄(箭头键)和缩放(鼠标滚轮)做工精细,但我想的看法也回家向地方光标放置,如谷歌地图或最高指挥官

我会告诉你如何实现缩放的细节,甚至是我正在使用的语言:这都是无关紧要的.重要的是缩放功能,它修改代表视图的矩形结构(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 = ???
}
Run Code Online (Sandbox Code Playgroud)

之前有人建议它,下面将工作:

view.x = mouse_x - view.w/2;
view.y = mouse_y - view.h/2;
Run Code Online (Sandbox Code Playgroud)

这张照片说明了为什么,当我试图放大笑脸时:

http://oi43.tinypic.com/16m21au.jpg

正如您所看到的那样,当鼠标下方的对象放置在屏幕中央时,它停在鼠标下方,所以我们停止向它缩放!

如果你有一个数学头(你需要一个)任何帮助,这将是非常感谢!

mouse user-interface scroll zoom

10
推荐指数
1
解决办法
2545
查看次数

标签 统计

mouse ×1

scroll ×1

user-interface ×1

zoom ×1