2012-04-09 14 views
6

पुराने गेम इंजन एक छवि के पैलेट के पहले रंग को पारदर्शी रंग के रूप में निर्दिष्ट करते हैं। libGDX के साथ ऐसा करने का कोई तरीका है?libGDX: पारदर्शी रंग के रूप में पैलेट में पहला रंग का इलाज करें

मैंने तस्वीर लोड करने और 0x00000000 के साथ पैलेट के पहले रंग को बदलने की कोशिश की। हालांकि पिक्सल या तो अपारदर्शी या पारदर्शी हैं, इसलिए मुझे अल्फा मानों की आवश्यकता नहीं है, इसलिए मैं RGBA8888 के बजाय RGB888 का उपयोग कर बहुत मेमोरी बचा सकता हूं। मैं अन्य मिश्रण विकल्पों के लिए जीडीएक्स और ओपनजी वृत्तचित्र के माध्यम से देखता हूं और Gdx.gl20.glBlendColor और स्प्राइटबैच के सेटब्लेंड फ़ंक्शन फ़ंक्शन पाया। लेकिन वे केवल मिश्रण समीकरणों में उपयोग किए गए मानों को बदलते हैं। अग्रिम :)

+0

मैं ऐसा करने के लिए एक तरीका है पता नहीं है, और मैं वास्तव में यकीन है कि क्यों नहीं कर रहा हूँ आपको। मुझे लगता है कि अधिकांश ग्राफिक्स सतह 32-बिट हैं, इसलिए यदि आप 24-बिट छवियों को लोड करते हैं, तो यह केवल परिवर्तित हो जाएगा। आरजीबीए 8888 का उपयोग करना शायद सबसे अच्छा है जब तक कि आप _actually_ स्मृति से बाहर नहीं हो जाते। –

उत्तर

3

में

धन्यवाद आकर्षित करने के लिए एक textureRegion पारदर्शी रूप से इस तरह की दिनचर्या का उपयोग करें:

Color c = batch.getColor(); 
    batch.setColor(1, 1, 1, alpha); 
    batch.draw(....); 
    batch.setColor(c); 
संबंधित मुद्दे