2013-07-15 7 views
7

मैं अलग-अलग राज्यों के लिए अलग बनावट के साथ कई वस्तुओं है, तो मैं एक TextureAtlas TexturePacker के साथ बनाया का उपयोग कर रहा है, और TextureRegion जहां मैं इसे की जरूरत है उसका आकार बदलें। मुझे आकार बदलना है क्योंकि न केवल मैं 720p और 1080p दोनों का समर्थन करने की कोशिश कर रहा हूं, लेकिन मेरी कुछ वस्तुएं टाइल्स या कर्सर हैं जो बोर्ड की चौड़ाई और ऊंचाई के आधार पर आकार बदलती हैं, क्योंकि यह मेरे खेल में बदल सकती है जबकि बोर्ड हमेशा स्क्रीन के समान प्रतिशत पर कब्जा करें। जब मैं एक TextureRegion उपयोग कर रहा हूँ वहाँ एक फिल्टर स्थापित करने के लिए कोई विकल्प नहीं हैLibGDX: एक छोटा TextureRegion फ़िल्टर करना

texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 

हालांकि,:

एक Texture साथ

, मैं सिर्फ यह कर सकते हैं। इसके परिणामस्वरूप TextureRegion एस तेज, अवरुद्ध और जंजीर के आकार का आकार बदलता है। यह अच्छा स्केलिंग नहीं है और यह बिल्कुल विरोधी उपनाम प्रतीत नहीं होता है।

यह बहुत निराशाजनक है, क्योंकि मैं ग्राफिक्स बनाने में काफी बुरा हूं और अब भी जब मैं इसे पसंद करता हूं तो मुझे लगता है कि यह क्रोधित दिखता है। Texture के बजाय TextureRegion का उपयोग करके TextureFilter.Linear के प्रभाव को दोहराने के लिए मैं क्या करूँ?

उत्तर

13

आप अपनी .atlas फ़ाइल खोल सकते हैं और filter मान Linear, Linear पर बदल सकते हैं। या आप जिस क्षेत्र से संबंधित हैं, उस पर पहुंच प्राप्त करने के लिए region.getTexture() का उपयोग कर सकते हैं, फिर उस पर setFilter(...) पर कॉल करें।

+0

जब भी हम छवियों को पैक करते हैं तो मैन्युअल रूप से .altas फ़ाइल को बदलने से बचने के लिए हम इसका उपयोग कर सकते हैं: https://github.com/libgdx/libgdx/wiki/Texture-packer# विन्यास –

0

आप GDX-उपकरण का उपयोग कर पैकिंग कर रहे हैं, तो आप विकल्प

Settings settings = new Settings(); 
    settings.paddingX = 2; 
    settings.paddingY = 2; 
    settings.minWidth = 32; 
    settings.minHeight = 32; 
    settings.maxHeight = 1024; 
    settings.maxWidth = 1024; 
    settings.stripWhitespaceX = true; 
    settings.stripWhitespaceY = true; 
    settings.filterMag = TextureFilter.Nearest; 
    settings.filterMin = TextureFilter.Nearest; 
    settings.flattenPaths = true; 

    TexturePacker2.process(settings, "input directory", "output directory","packName"); 

    System.out.println("PackTextures->main finished."); 

सेट करने के लिए या यदि आप बनावट पैकर-gui.jar उपयोग कर रहे हैं तो रैखिक (न्यूनतम) और रैखिक (के लिए चेकबॉक्स टिक अधिकतम) और आप जाने के लिए अच्छे हैं ...