2012-12-29 14 views
5

मैं लिबजीडीएक्स फ्रेमवर्क का उपयोग करके एक पेंटिंग एप्लिकेशन पर काम कर रहा हूं, और मैं अपने फ्रेमबफर वर्ग का उपयोग कर रहा हूं ताकि उपयोगकर्ता एक ठोस बनावट पर जो आकर्षित कर सके, वह उनके चित्र के रूप में दिखाई देता है। यह पहलू ठीक काम कर रहा है, हालांकि, जिस क्षेत्र में उपयोगकर्ता आकर्षित कर सकता है वह हमेशा एक ही आकार नहीं होने वाला है, और मुझे पूरी खिड़की के अलावा अन्य प्रस्तावों पर ठीक से प्रदर्शित करने में परेशानी हो रही है।लिबजीडीएक्स फ्रेमबफर स्केलिंग

मैंने यह बहुत व्यापक रूप से परीक्षण किया है, और ऐसा लगता है कि फ्रेमबफर उसी खिड़की के रूप में उसी संकल्प पर बनावट बना रहा है, और उसके बाद वास्तविक क्षेत्र को फिट करने के लिए बस इसे खींच या छोटा कर रहा है में, जो खिड़की से बड़े या छोटे किसी भी ड्राइंग के लिए बहुत अप्रिय प्रभाव है।

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

मैं पूरी तरह से विचारों से बाहर हूं, इस समस्या का निवारण करने की कोशिश करने में काफी समय बिताया है।

+0

में आपका स्वागत है: (! मुझे लगता है कि)

फ्रेम बफर वास्तविक उपकरण विंडो का आकार की परवाह किए बिना एक सही अनुपात और बड़े पैमाने बनावट का उत्पादन करने के लिए जिस तरह से आकार इतना की तरह आवश्यक करने के लिए प्रक्षेपण मैट्रिक्स स्थापित करने के लिए है । यदि आपके पास कोई असतत प्रश्न है और आपने जो कोशिश की है, क्या होता है, आदि दिखाएं तो आपको अपनी पोस्ट के लिए बेहतर प्रतिक्रिया मिलेगी। – ethrbunny

+0

मैं वास्तव में एक और विशिष्ट प्रश्न पोस्ट करने और अधिक जानकारी देने में सक्षम होना चाहता हूं, लेकिन दिया गया समस्या की प्रकृति, मुझे बस इतना नहीं पता कि मुझे ध्यान केंद्रित करना चाहिए और पूरी तरह से नुकसान हो रहा है। मुझे कुछ भी पोस्ट करने में प्रसन्नता हो रही है जो अनुरोध पर मदद कर सकती है, लेकिन फिलहाल मुझे यह भी यकीन नहीं है कि यहां जोड़ने के लिए वास्तव में क्या सहायक होगा। – Synthetik

उत्तर

6

कोर मुद्दे खोजने के लिए आपको बहुत सिंथेटिक धन्यवाद। इस स्थिति को ठीक करने का उचित तरीका यहां है जिसे आप पसंद करते हैं। StackOverflow को

SpriteBatch batch = new SpriteBatch(); 
Matrix4 matrix = new Matrix4(); 
matrix.setToOrtho2D(0, 0, 480,800); // here is the actual size you want 
batch.setProjectionMatrix(matrix); 
+0

मैंने कोशिश की अभी तक यह अभी भी थोड़ा सा फैला है। – Midnightas

3

मुझे विश्वास है कि मैंने अपनी समस्या हल कर ली है, और मैं समस्या का क्या एक संक्षिप्त विवरण दूंगा।

असल में, इस समस्या का कारण स्प्राइटबैच कक्षा के भीतर है। विशेष रूप से, मानते हुए कि मैं कक्षा के पुराने संस्करण का उपयोग नहीं कर रहा हूं, समस्या लाइन 181 पर है, जहां प्रक्षेपण मैट्रिक्स सेट है। रेखा:

 projectionMatrix.setToOrtho2D(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 

यह सब कुछ है कि करने के लिए तैयार की है, अनिवार्य रूप से, खिड़की/स्क्रीन के पैमाने पर तैयार किया जा और फिर जहां यह बाद में करने की जरूरत है फिट करने के लिए बढ़ाया खड़ी कर रहा है। मुझे यकीन नहीं है कि इसे संभालने के लिए एक और "उचित" तरीका है, लेकिन मैंने बस स्प्राइटबैच क्लास के भीतर एक और विधि बनाई है जो मुझे इस विधि को अपने आयामों से फिर से कॉल करने की अनुमति देती है, और जब आवश्यक हो तब कॉल करें। ध्यान दें कि प्रत्येक ड्रॉ या उस तरह की किसी भी चीज़ पर, केवल एक बार, या किसी भी समय आयाम बदल सकते हैं।

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