मैं एक बहुत ही मूल सूत्र का उपयोग कर रहा हूं कि एक्सबॉक्स कंट्रोलर थंबस्टिक के आधार पर मेरे स्प्राइट (उदाहरण के लिए स्पेसशिप) को किस कोण पर गणना की जानी चाहिए यानी आप जहाज को घुमाने के लिए थंबस्टिक का उपयोग करते हैं।
मेरी मुख्य अद्यतन विधि में:
shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y);
मेरी मुख्य ड्रा विधि में:
spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1);
जैसा कि आप देख सकते हैं कि यह काफी सरल है, मैं अंगूठे से वर्तमान रेडियंस को लेता हूं और इसे एक फ्लोट में संग्रहीत करता हूं shuttleAngle
और फिर शटल को खींचने के लिए रोटेशन कोण (रेडियन में) तर्क के रूप में इसका उपयोग करता हूं ।
किसी कारण से जब मैं स्प्रिंट को घुमाता हूं तो यह 0, 90, 180 और 270 डिग्री के कोण पर चिपचिपा महसूस होता है। यह उन कोणों पर बसना चाहता है। यह मुझे एक सहज और प्राकृतिक घुमाव नहीं दे रहा है, जैसे मैं एक ऐसे खेल में महसूस करता हूं जो एक समान मैकेनिक का उपयोग करता है। PS: मेरा Xbox नियंत्रक ठीक है!
shuttleAngle
को प्रिंट करके देखें कि क्या उन एंगल्स पर चिपक जाता है