2013-02-11 16 views
7

मैं सी # और एक्सएनए सीखना शुरू कर रहा हूं, और मैं एक एनिमेटेड स्प्राइट (मेरे कीबोर्ड द्वारा स्थानांतरित) प्रदर्शित करना चाहता हूं।स्प्राइट धुंधला हो जाता है

मैं इस स्प्राइट फ़ाइल मिल गया है:

basic sprite

प्रदर्शित करने के लिए केवल एक भाग मैं की जरूरत है, मैं इस कोड का उपयोग करें:

Rectangle cuttedSprite = new Rectangle(
    this.W * (int)this.mCurSprite.X, 
    this.H * (int)this.mCurSprite.Y, 
    this.W, 
    this.H 
); 
spriteBatch.Draw(this.mSpriteTexture, this.mPosition, cuttedSprite, Color.White); 

लेकिन मेरी समस्या यह है कि प्रदान की गई है छवि धुंधला होने के बाद धुंधला है:

blur problem

मैंने SamplerStates को बदलकर इसे ठीक करने का प्रयास किया, लेकिन कुछ भी नहीं बदला। क्या किसी के पास मेरी मदद करने का विचार है?

+3

एक 'SamplerState.PointWrap' के साथ प्रयास करें। साथ ही, चूंकि 'mPosition' शायद' वेक्टर 2 'है, इसलिए' mPosition.X' और 'mPosition.Y' को निकटतम पूर्णांक में गोल करने का प्रयास करें। – Lucius

+1

आप सही थे! जब मैं विकर्ण में स्थानांतरित करता हूं तो मैंने अपनी छवि को किसी भी पूरे पिक्सेल पर प्रदर्शित करने की कोशिश की ... ठीक है इस उत्तर को पोस्ट करें और मैं इसे मान्य करता हूं! – PoulsQ

उत्तर

5

स्प्राइट की स्थिति को निकटतम पूर्णांक में गोल करें।

यदि स्प्राइट का गंतव्य आयताकार पिक्सेल से कम ऑफसेट होता है, तो पिक्सेल शेडर में नमूना पड़ोसी पिक्सेल के बीच इंटरपोलेट करके रंग की गणना करेगा।

एक और विकल्प नमूना के filter method को निकटतम पड़ोसी इंटरपोलेशन में बदल रहा है। पर कॉल करते समय आप SamplerState.PointWrap या SamplerState.PointClamp निर्दिष्ट करके ऐसा कर सकते हैं।

+1

चीजों को संभालने के तरीके के आधार पर, आप केवल प्रतिपादन उद्देश्यों के लिए राउंडिंग करना चाह सकते हैं। यदि आप भौतिकी का उपयोग कर रहे हैं, उदाहरण के लिए, आप सॉल्वर में सटीक निर्देशांक छोड़ना चाहते हैं अन्यथा यह बार-बार उनके लिए कोशिश करने और सही करने जा रहा है, इसलिए केवल वास्तविक ड्रा कॉल के चारों ओर। – ssube

0

सबसे आसान करने के लिए डाला जाता है (पूर्णांक) Position.X और (int) Position.Y आंदोलन बटन जारी की है जब

+0

प्रश्न का उत्तर लगभग एक साल पहले किया गया था, जब तक जोड़ने के लिए कुछ नया नहीं है तब तक इसे टक्कर देने की आवश्यकता नहीं है – Leeor

संबंधित मुद्दे