मैं अपनी खुद की खींचें और कैनवास का उपयोग करके ड्रॉप कर रहा हूँ गेंद को चुनने के लिए, मैंने इसके चारों ओर एक अदृश्य सीमा बॉक्स बनाया है। इस क्षेत्र में क्लिक करने से आपको गेंद खींचने की अनुमति मिलेगी।
माउस चाल पर, मैं
xBall = xMouse; YBall = yMouse; तो गेंद माउस का पालन करेंगे। यह ड्रैग की बहुत शुरुआत के अलावा महान है, गेंद का केंद्र उसमें कूद जाएगा जहां मुझे नहीं चाहिए। इसलिए मुझे माउस और बॉल के बीच ऑफसेट को ध्यान में रखना होगा।
क्या कोई इसके पीछे गणित समझा सकता है? मेरे तर्क से, मुझे माउस की स्थिति पर ऑफसेट जोड़ना होगा। तो मुझे xBall = xMouse + (xBall - xMouse) मिलता है, लेकिन जैसा कि आप देख सकते हैं, यह सिर्फ मुझे xBall = xBall दे रही है जो कि कोई फायदा नहीं है। मैं कहाँ गलत हो रहा हूं?
आपको यह निर्धारित करने की आवश्यकता है कि प्रारंभिक क्लिक कब हुआ और ऑफसेट इस प्रारंभिक निर्देशांक के संबंध में गणना की जानी चाहिए।
माउस के नीचे, प्रारंभिक क्लिक किए गए निर्देशांक संचय करें:
xInitial = xMouse; YInitial = yMouse; MovingFlag = true; माउस चाल पर:
यदि (चलती फ़्लैग) {xBall = xBall + xMouse - xInitial; YBall = yBall + yMouse - yInitial; } माउस पर:
movingflag = false;
No comments:
Post a Comment