我已經爲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