2012-06-14 186 views
0

我得到在cocos2d我CCLabelBMFont標籤的一些奇怪的扭曲,因爲這裏要注意:扭曲字體

example example

的扭曲出現在兩臺iPad設備和模擬器上。這個著名的幾點:

  • 我也使用相同的字體文件等標籤無法顯示的這個
  • 我已經確定了標籤的座標都是整數,無漂浮
  • 沒有脫屑
  • 我已經有和沒有[label.texture setAliasTexParameters];沒有區別
  • 如果我的標籤轉移到一個不同的座標試過的標籤,有時校正失真

任何想法可能會發生什麼?

更新:我將標籤更改爲TTF標籤,問題依然存在!即使沒有使用字體文件,也會出現失真。

回答

2

上cocos2d的論壇上一些挖掘使我補充一點:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

似乎解決該問題。任何人都知道這是否有其他不良的副作用,因爲這不是Cocos2d中的默認投影。

UPDATE這解決了我的問題在iOS 4只,但我的問題仍然存在,在iOS 5,我現在看到的是,失真可以通過調整標籤的錨點被刪除,所以它似乎通過影響。可能是一個錯誤?

更新2事實證明,我的症狀是由兩個不同的事情引起的。實際上,投影確實會對某些失真和所有iOS版本產生影響,所以上面的代碼很有用。但是第二,我發現了一個條件語句來設置字體標籤的位置,並且它並不總是創建整數座標。因此,通過將(int)置於xy部分的座標之前,問題就解決了。精靈可以處理浮點座標而不失真,但似乎CClabels不能。

+0

事實上,我無法找到任何有關使用不同投影類型的原因的文檔。任何幫助表示讚賞。 – johnbakers

+0

好問題,我一直在想我自己。新的問題(與我的用例):http://stackoverflow.com/questions/11030664/what-is-the-difference-between-2d-and-3d-projection-in-cocos2d-iphone – LearnCocos2D

1

在每個字符周圍添加一些間距。這通常是由紋理過濾引起的紋理圖譜中的其他附近字形「滲入」彼此。 Glyph Designer和Hiero都允許您指定間距,通常每個字形之間的兩個像素值足以止血。

+0

原來我的解決方案改變投影類型只解決了iOS 4的問題,但它仍然保留在iOS 5上,所以我嘗試了你的建議,並增加了間隔和填充,但不幸的是我的問題仍然存在。奇怪的是,即使所有標籤的設置完全相同,它也不會影響使用該字體的所有標籤。 – johnbakers

+0

我進一步證實,即使我使用TTF標籤並且沒有字體文件,問題也是相同的,所以它不是由於間隔 – johnbakers