游戲中能漂亮地顯示積分是很重要的,手機自帶的字體無疑太難看了,所以我們需要用圖片來代替數字。
這個是圖片資源, 新建一個圖片數組:Image[] imgNumbers = new Image[10];然後讀入即可
把這個函數加入到你的游戲畫積分部分就可以了
/**
* 畫得到的總分數
* @param g Graphics
* @param totalScore
*/
private void drawTotalScore(Graphics g) {
//把當前的總經驗值轉化為數組::比如2335 --> {0, 0, 2, 3, 3, 5};
int _totalScore = totalScore;//totalScore是你游戲中總的積分
int i = 0;
int[] t = new int[6];
while(_totalScore > 9) {
t[i] = _totalScore % 10;
_totalScore /= 10;
i++;
}
t[i] = _totalScore;
//從最高位開始畫數字,
for( ; i >= 0; i--) {
g.drawImage(imgNumbers[t[i]], offsetX + i * 10, y, Graphics.RIGHT | Graphics.TOP);
}
}
很簡單不是?用到的都是數據結構上的東西。剛開始時我用的是把int型轉化為String然後再去畫,後來發現超級占內存,生成很多String垃圾,於是就寫了這個函數,效果還不錯