मेरे खेल में वेग जोड़ने के बाद, मुझे लगता है कि मेरे बनावट चिकोटी काट रहे हैं। मुझे लगा कि यह सिर्फ मेरी आंखें हैं, जब तक कि मैंने आखिरकार इसे स्क्रीनशॉट में कैद नहीं किया:
बाईं ओर एक है जो मेरे खेल में प्रस्तुत करता है; दायीं ओर वाला मूल स्प्राइट है, जिसे चिपकाया जाता है। (यह फोटोशॉप से एक स्क्रीनशॉट है, जिसे 6x में ज़ूम किया गया है।)
ध्यान दें कि किनारे अलियासिंग हैं - यह लगभग उप-पिक्सेल रेंडरिंग जैसा दिखता है। वास्तव में, यदि मैंने पूर्णांक मानों का उपयोग करने के लिए अपने स्प्राइट्स (जो कि स्थिति और वेग के रूप में है) को मजबूर नहीं किया था, तो मैं शपथ लेता हूं कि मोनोमेग फ्लोटिंग पॉइंट मूल्यों के साथ ड्राइंग कर रहा है। लेकिन ऐसा नहीं है।
धुंधली दिखने वाली इन चीजों का कारण क्या हो सकता है? यह लागू वेग के बिना नहीं होता है।
सटीक होने के लिए, मेरी SpriteComponent
कक्षा में एक Vector2 Position
क्षेत्र है। जब मैं फोन करता हूं Draw
, मैं अनिवार्य रूप new Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))
से स्थिति के लिए उपयोग करता हूं ।
मेरे पास एक बग था जहां पहले भी स्थिर वस्तुएं घबराहट करती थीं - जो कि सीधे Position
वेक्टर का उपयोग करने और मूल्यों को गोल न करने के कारण था ints
। यदि मैं गोल के बजाय Floor
/ का उपयोग करता हूं Ceiling
, तो स्प्राइट सिंक / होवर (एक पिक्सेल अंतर दोनों तरह से) लेकिन फिर भी धुंधला हो जाता है।