मेरे पास ऑब्जेक्ट्स का एक सेट है जिसे मैं स्क्रीन पर ले जा रहा हूं। या तो 200 x 200 या 120 x 120 होने जा रहे हैं और केवल x दिशा में दाएं या बाएं चलेंगे। मुझे वस्तुओं की शुरुआती स्थिति की गणना करने की आवश्यकता है
मुझे लगता है कि यह सरल गणित होना चाहिए, जहां आकार की वस्तुओं के लिए 120x120: (शून्य स्क्रीन का सबसे बायां किनारा है)
अंतरिक्ष = 10 (पिक्सेल)
ऑब्जेक्ट 0 -120 से शुरू होता है)
ऑब्जेक्ट 1 -240 + स्पेस से शुरू होता है
ऑब्जेक्ट 2 -360 + स्पेस से शुरू होता है
ऑब्जेक्ट 3 -480 + स्पेस से शुरू होता है
... ऑब्जेक्ट 9 -1080 + स्पेस से शुरू होता है
लेकिन यह काम नहीं कर रहा है, वे अधिक से अधिक संरेखण से बाहर हो जाते हैं और गणना आगे बढ़ती है। जब मैं उन्हें स्थानांतरित करता हूं तो वे अपने गठबंधन से बाहर की स्थिति में रहते हैं, क्योंकि मैं प्रत्येक वस्तु में समान मात्रा में गति जोड़ रहा हूं।
मैन्युअल रूप से x स्थिति दर्ज करने के बजाय किसी दिए गए बिंदु से शुरुआती x स्थिति की गणना करना भी अच्छा होगा, x के लिए लेखांकन सकारात्मक या नकारात्मक हो सकता है।
1 उत्तर
getPositionOfNth(int objectWidth, int startPosition, int objectNumber, int space){
return startPosition + objectNumber * (objectWidth + space);
}
अब आपके उदाहरण के लिए:
getPositionOfNth(120, 0, 0, 10) == 0
getPositionOfNth(120, 0, 1, 10) == 130
getPositionOfNth(120, 0, 2, 10) == 260
getPositionOfNth(120, 0, 2, 10) == 390
...
संबंधित सवाल
नए सवाल
math
गणित में एक कार्यक्रम के भीतर संख्याओं का हेरफेर शामिल है। सामान्य गणित के प्रश्नों के लिए, कृपया math.stackexchange.com पर पूछें। नोट: यदि आपका प्रश्न फ़्लोटिंग पॉइंट गणनाओं में अप्रत्याशित परिणामों के बारे में है, तो कृपया पहले https://stackoverflow.com/questions/588004/is-floating-point-math-broken पढ़ें।