[Android篇]使用CCLabelTTF換行會漏字(最後一個字不見)的問題

文章撰寫日期︰2013/03/20 10:35
cocos2dx使用版本︰v 2.0.4
cocosBuilder使用版本︰v 2.0 alpha 1

一、問題

針對CCLabelTTF設定setDimensions,
想要做到文字過長會自動換行的效果,
在IOS上能正常顯示,
Android上卻會被截掉每一行的最後一個字元的問題。

請參見下圖示意的題目的部份
畫面在IOS上的樣子
畫面在Android上的樣子
可以看到,
"一條尾巴"後面的"逗號"在Android上不見了

二、解決方法

與Cocos2dX開發人員詢問後,
發現此問題是2.0.x的一個bug,
已經在cocos2d-x 2.1.x獲得改善,
可參見它們的更新LOG #1610
Bug   #1610: fix a bug that CCLabelTTF will lost a character at the end of a line
 
解決方法是將cocos2d-x在Android上的一個類別
Cocos2dxBitmap.java line 298

while (pString.indexOf(i++) == ' ') {
 ;
}
改成
while (pString.indexOf(i) == ' ') {
          ++i;
}
記得,
cocos2dx/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxBitmap.java也要改掉。

免得之後建立的新Android-Cocos2dx專案又遇到同樣的問題。

沒有留言 :

張貼留言