के साथ प्रगतिशील रूप से टेक्स्ट प्रदर्शित करें मैं libgdx के साथ पाठ को क्रमिक रूप से प्रदर्शित करने का एक तरीका ढूंढ रहा हूं, लेकिन मुझे वैसे ही ऐसा करने का कोई तरीका नहीं मिल रहा है। यहां मैंने किया है:libgdx
- मेरे पास एक टेक्स्ट लेबल है जिसे एक अलग पाठ प्रदर्शित करने के लिए समय-समय पर अपडेट किया जा रहा है। लेबल
setWrap(true);
औरsetAlignment(Align.center);
हर बार जब मैं लेबल मैं जो मैं इस
public class DisplayTextAction extends TemporalAction{ private CharSequence completeText; @Override protected void update(float percent) { ((Label)actor).setText( completeText.subSequence( 0, (int)Math.round(completeText.length()*percent)); } public void setText(String newText){ completeText = newText; } }
- हर पाठ अद्यतन की तरह बनाया गया एक कस्टम कार्रवाई का उपयोग के पाठ को बदलने के लिए सेट कर दिया जाता है, मैं एक पूल से कार्रवाई कहते हैं, पाठ बदलें और लेबल में कार्रवाई जोड़ें।
यहां मेरी समस्या है: यह एक केंद्रित और लिपटे पाठ के साथ काम करने के तरीके से काम नहीं करता है।
यह तब होता है जब पाठ केंद्रित नहीं है (डॉट्स अंतरिक्ष प्रतिनिधित्व करते हैं):
|h........|
|hel......|
|hello....|
(वर्क्स का इरादा के रूप में)
यह जब पाठ केंद्रित है तो:
|....h....|
|...hel...|
|..hello..|
और इस तरह मैं इसे व्यवहार करना चाहता हूं:
|..h......|
|..hel....|
|..hello..|
इसे ठीक करने का मेरा मूल विचार तारों के 2 सेट, एक दृश्यमान पाठ है, और एक अदृश्य है जो "पैडिंग" के रूप में कार्य करता है। मैं कुछ इस तरह के साथ आया था:
CharSequence visibleText = completeText.subSequence(
0,
(int)Math.round(completeText.length()*percent));
CharSequence invisibleText = completeText.subSequence(
(int)Math.round(completeText.length()*percent),
completeText.length());
तो मैं तार के अपने दो सेट है, लेकिन मैं एक दिखाई दो अलग अलग फोंट प्रदर्शित करने के लिए (एक तरह से, और एक और एक है जो एक ही लेकिन साथ है नहीं मिल सकता है 0 का अल्फा) या लिबडक्स के साथ एक ही लेबल में शैलियों।
मैं अटक गया हूं, मुझे नहीं पता कि मेरा दृष्टिकोण सही है या अगर मुझे कुछ अलग दिखना चाहिए, और यदि मेरा दृष्टिकोण सही है, तो मुझे नहीं पता कि libgdx का उपयोग करके इसका पालन कैसे करें उपकरण।
संपादित करें:
मैं Jyro117 के निर्देशों का पालन किया है और मैं बड़ी प्रगति कर सकता है, लेकिन मैं इसे कई पंक्तियों पर केन्द्रित पाठ के साथ काम नहीं कर सके।
इस पाठ की कल्पना:
|all those lines are|
|..for a very long..|
|........text.......|
और यह इस
|all th.............|
|...................|
|...................|
|all those line.....|
|...................|
|...................|
|all those lines are|
|..for a ve.........|
|...................|
|all those lines are|
|..for a very long..|
|........text.......|
Jyro117 के समाधान की तरह प्रदर्शित करने के लिए या तो
|all those lines are|
|for a very long....|
|text...............|
सही ढंग से प्रदर्शित देना है।
या
|...................|
|......all tho......|
|...................|
|...................|
|...all those lin...|
|...................|
|all those lines are|
|......for a v......|
|...................|
आपके समाधान के लिए धन्यवाद, यह बेहतर काम करता है लेकिन अभी भी वास्तव में व्यवहार नहीं करता है कि मैं इसे कैसे चाहता हूं। मैं अपनी पोस्ट को और अधिक जानकारी के साथ संपादित करूंगा कि यह क्या करता है और यह क्या नहीं करता है। – vaati
मैंने आपकी आवश्यकताओं के अनुरूप फिट करने के लिए कुछ कोड जोड़ा है। इसके लिए आपको एक मोनो-स्पेस फ़ॉन्ट का उपयोग करने की आवश्यकता होगी ताकि रिक्त स्थान वर्ण की चौड़ाई से मेल खाते हों। अन्य प्रकार के फ़ॉन्ट्स के समाधान के लिए बिटमैपफॉन्ट क्लास में बड़े संशोधन की आवश्यकता होती है और ग्लिफ स्थानों को कैसे निर्धारित किया जाता है क्योंकि आपको इसे अंतिम टेक्स्ट लेआउट के बारे में जानकारी देने की आवश्यकता होती है। – Jyro117
मैं देखता हूं। मुझे लगता है कि मेरे पास बिटमैपफॉन्ट के साथ कोई विकल्प नहीं है। जब मुझे समाधान मिलेगा तो मैं फिर से पोस्ट करूंगा। – vaati