मैं एक 2 डी टाइल ग्रिड से एक चिकनी प्रकाश प्रभाव को लागू करने के लिए मेरे विधि साझा करेंगे। क्लासिक थंडर का answer छाया के लिए एक अच्छा लिंक प्रदान करता है।
सबसे पहले, हम प्रत्येक टाइल जो बाद में धुंधला हो जाएगा की प्रकाश व्यवस्था मूल्यों की गणना करने की आवश्यकता होगी। मुझे कोड में आने से पहले यह बताता है कि यह कैसे काम करता है।

मूल रूप से हम क्या ऊपर से शुरू, सभी टाइल के माध्यम से लूप है, अगर एक टाइल खाली है,, अधिकतम चमक के CurrentLight
चर सेट अगर हम एक ठोस टाइल खोजने के लिए, के रूप में सेट CurrentLight
परिवर्तनीय और CurrentLight
से "अवशोषण" राशि घटाएं। इस तरह, हमारे अगले ठोस टाइल पर, जब हम टाइल को CurrentLight
मान पर सेट करते हैं, तो यह थोड़ा कम होगा। सरणी को फिर से चालू होने तक यह प्रक्रिया दोहराई जाती है।
अब नीचे प्रकाश प्रभाव के लिए एक अच्छा शीर्ष पर होगा, लेकिन यह है कि महान नहीं है। हमें इस प्रक्रिया को 3 से अधिक बार, नीचे से ऊपर, बाएं से दाएं, और दाएं से बाएं करने के लिए दोहराना होगा। और इसे बेहतर गुणवत्ता के लिए और बार दोहराया जा सकता है।
मूल रूप से
if (tile.Light > CurrentLight) //If this tile is brighter than the last, set the current light to the tiles light
CurrentLightR = tile.Light;
else if (CurrentLight != 0f) //If it is less, and isnt dark, then set the tile to the current light
tile.Light = CurLightR;
if (tile.Light == CurLightR) //If it is the same, subtract absorb values
CurrentLight -= tile.Absorb;
पाश में हर टाइल पर इस कोड चलाने और वहाँ तुम जाओ, अच्छा टाइल प्रकाश। हालांकि यदि आप कम "पिक्सेलकृत" दिखना चाहते हैं, तो आप इसके लिए मेरे question on gamedev देख सकते हैं।
-1 में 4।0 डिफ़ॉल्ट व्यवहार के तहत (रंग * फ्लोट) चमक/अंधेरा में परिवर्तन नहीं करता है, यह पारदर्शिता बदलता है। http://blogs.msdn.com/b/shawnhar/archive/2010/04/08/premultiplied-alpha-in-xna-game-studio-4-0.aspx – ClassicThunder
@ क्लासिक टंडर इसके आसपास कोई रास्ता है? यह सबसे अच्छा तरीका – Neomex