2009-06-02 14 views
10

एक्सएनए में, एक से अधिक spritebatch का उपयोग कर अपनी गेम सामग्री प्रस्तुत करना उचित कब है? अब तक मैंने कभी एक से अधिक उपयोग नहीं किया है, और इस दृष्टिकोण के लिए कभी भी डाउनसाइड्स नहीं देखा है।एक्सएनए में एकाधिक स्प्राइट बैचों का उपयोग कब करें?

एकाधिक स्प्राइटबैच का उपयोग करने वाली स्थितियों में अनुशंसित या आवश्यक भी हो सकता है?

उत्तर

7

बहुत कम मामले हैं जिनमें एकाधिक स्प्राइटबैच का उपयोग करना आवश्यक है। एक उदाहरण जो मैं बहुत से चारों ओर फेंकता हूं वह एक ऐसी स्थिति है जिसमें आप स्प्राइट्स के विभिन्न सेटों के लिए अलग-अलग पोस्ट प्रोसेसिंग/रेंडरस्टेट्स लागू करना चाहते हैं, जिसके लिए प्रत्येक सेट के लिए एक अलग स्प्राइटबैच की आवश्यकता होती है।

यदि संभव हो तो इसे केवल एक बैच का उपयोग करने के लिए अच्छा अभ्यास माना जाता है, क्योंकि एक बैच में जितनी संभव हो उतनी चीजें ड्राइंग करना कई बैचों में काम फैलाने से कहीं अधिक प्रदर्शनकारी होता है। इसके अतिरिक्त, चूंकि आप केवल एक स्प्राइटबैच के भीतर सॉर्ट ऑर्डर को नियंत्रित कर सकते हैं, इसलिए यह विभिन्न बैचों से स्प्राइट्स के बीच गहराई को नियंत्रित करने के लिए कठिन (या असंभव) बना सकता है।

संक्षेप में: वहाँ लेकिन बोधगम्य परिस्थितियाँ होती हैं जिनमें आप यह कर सकते हैं कर रहे हैं, यह सब है कि आम नहीं है और सामान्य रूप से आप एक SpriteBatch उपयोग करने के लिए छड़ी जब तक आप पता चाहिए कि आप को पूरा नहीं कर सकते हैं कि आप क्या चाहते एक से अधिक का उपयोग किए बिना।

+0

एक मानक उपयोग केस एक अलग बनावट एड्रेस मोड का उपयोग करना चाह सकता है जैसे लपेटें – markmnl

0

DrawableGameComponents के साथ मामलों में यह भी आसान हो सकता है कि यह चारों ओर पास करने की कोशिश करने के बजाय DrawableGameComponent प्रति स्प्राइटबैच हो।

2

Here 1 से अधिक स्प्राइटबैच (शॉन का ब्लॉग - सामान्य रूप से - निश्चित स्रोत) का उपयोग करने का एक अच्छा उदाहरण है।

स्प्राइटबैच वास्तव में कोई भी चित्र नहीं करता है जब तक आप एंड विधि को कॉल नहीं करते। इसका मतलब है कि आप अलग-अलग सेटिंग्स के साथ कई ओवरलैपिंग बैचों को शुरू कर सकते हैं, बैच इंस्टेंस के किसी भी संयोजन का उपयोग करके किसी भी क्रम में स्प्रे को ड्रॉ कर सकते हैं, और नियंत्रित कर सकते हैं कि प्रत्येक बैच की पूरी सामग्री आपके एंड कॉल के ऑर्डर द्वारा खींची जाती है।

नोट इस उदाहरण अल्फा सम्मिश्रण और गहराई के अनुसार क्रमबद्ध स्प्राइट के साथ एक दृश्य के लिएप्रदर्शन का अनुकूलन के बारे में है। जब (या बल्कि, यदि) आप प्रदर्शन समस्याओं में भाग लेते हैं, तो एकाधिक स्प्राइटबैच का उपयोग करके कुछ हासिल हो सकता है। तब तक, आप इसे सरल रखने से शायद बेहतर हो सकते हैं।

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