这几天用cocos2d-x在window做个项目,发现中文label的时候算出来的Texture size不对。 具体原因是在CCImage中 sizeWithText里没有把utf8转回 utf16,而直接用DrawTextA来计算
文字大小。我把代码贴一下:
// utf-8 to utf-16
wchar_t * pwszBuffer = 0;
int nBufLen = nLen + 1;
pwszBuffer = new wchar_t;
CC_BREAK_IF(! pwszBuffer);
nLen = MultiByteToWideChar(CP_UTF8, 0, pszText, nLen, pwszBuffer, nBufLen);
// measure text size
//DrawTextA(m_hDC, pszText, nLen, &rc, dwCalcFmt);
DrawTextW(m_hDC, pwszBuffer, nLen, &rc, dwCalcFmt);
CC_SAFE_DELETE_ARRAY(pwszBuffer);