मैंने 2 डी रणनीति गेम के लिए होम-ब्रू व्यू_पोर्ट क्लास लिखा है। (तीर कुंजी के साथ) पैन और (माउस पहिया के साथ) जूमिंग अच्छा काम है, लेकिन मैं भी घर जहाँ भी कर्सर रखा गया है की ओर करने के लिए दृश्य करना चाहते हैं के रूप में Google Maps or Supreme Commanderमाउस की ओर ज़ूम करें (उदाहरण के लिए Google मानचित्र)
में मैं तुम्हें बारीकियों को छोड़ देंगे ज़ूम कैसे कार्यान्वित किया जाता है और यहां तक कि मैं किस भाषा का उपयोग कर रहा हूं: यह सब अप्रासंगिक है। ज़ूम फ़ंक्शन महत्वपूर्ण है, जो आयत संरचना (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