CClabelAtlas優勢,基本用法等我就不說了,這裏說一個和美術配合時的一個坑!就是圖片的最後一位怎麼也不顯示,以下圖中的冒號不會顯示程序員
查了ASCII碼錶,這個冒號的值爲58,就是在9(57)的後面,位置也沒有錯啊,但就是顯示不出來!~~~字體
爲何呢?spa
看其源碼,究其緣由,發現是美術給的圖片少了一個像素形成的,就是這個一個像素啊佔用了我一個小時!~code
咱們來看看具體緣由:blog
美術告訴我字體寬的距離爲29。圖片
可是要注意啦:這裏有11個字,一個字寬29,圖片的width應該是 11 * 29 = 319,可是美術給了一個 318寬的字體圖片源碼
在CCLabelAtlas::calculateMaxItems()方法中會自動計算m_uItemsPerRow 的值,因爲少了一個像素 318 / 29 = 10.96551...,被取整數部分後 m_uItemsPerRow就爲10,少了一位「:」,想必你已經想到緣由了,好,接着來證實下你的想法吧!class
m_uItemsPerRow = (int)(s.width / m_uItemWidth);
在CCLabelAtlas::updateAtlasValues()方法中,計算col的值date
float row = (float) (a % m_uItemsPerRow); float col = (float) (a / m_uItemsPerRow);
這樣就得不到「:」的繪製偏移量像素了,也就是問題的所在了……float
程序員們,要當心美術給的效果字體的圖片像素了!~~