AndEngine Text的使用心得

最近在遊戲裏面須要使用Text,因此就順便研究了下。

Text的建立:
能夠參考AndEngineExamples工程中的TextExample類。

更改Text的字體的大小,發現沒有諸如setSize這樣的方法能夠用,惟一能作的就是在FontFactory.create這個裏面進行設置。具體能夠參考源文件中的FontFactory類,包括字體的粗體,什麼字體,以及字體顏色等。

更改字體的顏色:
這個有點讓人人摸不着頭腦,發現有setColor這樣的方法,可是若是預設的字體顏色是黑色的話,文字的顏色沒法更改。
this.mFont = FontFactory.create(this.getFontManager(), this.getTextureManager(), 256, 256, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 25, true, Color.BLACK);


最後在AngEngine Foruns中找到了答案,建議將初始字體的顏色設置爲白色就能夠的,後來驗證確實是這樣的。順便說下很多關於使用方面的問題能夠直接在這個討論組裏面搜索。

http://www.andengine.org/forums/ java

setColor的方法的使用一開始也有點搞不清楚,對於固定的顏色的話,能夠這樣使用。 ide


myText.setColor(Color.RED);


可是有時候須要設置自定義的顏色,好比這樣:



setColor(pRed, pGreen, pBlue);


這個若是沒有看源文件的中的說明的話,會發現有問題,假設個人顏色是 (red: 153,green: 102,bule: 0),



setColor(153f,102f,0f);


可是你這樣使用的話,你會發現獲得的顏色不是本身定義的顏色,並且你若是搜索的話大部分的例子也都是那樣寫的。最後仍是求助源文件,在Entity類中式這樣描述的: 字體


/**
 * @param pRed from <code>0.0f</code> to <code>1.0f</code>
 * @param pGreen from <code>0.0f</code> to <code>1.0f</code>
 * @param pBlue from <code>0.0f</code> to <code>1.0f</code>
 */
@Override
public void setColor(final float pRed, final float pGreen, final float pBlue) {
	if(this.mColor.setChecking(pRed, pGreen, pBlue)) { // TODO Is this check worth it?
		this.onUpdateColor();
	}
}


因此上面的顏色應該這樣表示:



setColor(153f/255f,102f/255f,0f);


使用setText()當字串的長度超過必定的值時會出現: this

 java.lang.ArrayIndexOutOfBoundsException: length=30; index=30 code

解決方案: 遊戲


public Text(final float pX, final float pY, final IFont pFont, final CharSequence pText, final int pCharactersMaximum, final VertexBufferObjectManager pVertexBufferObjectManager)

使用這個構造方法,進行初始化。 get

待續。 it

相關文章
相關標籤/搜索