很久以前做过的事了,突然想到就拿出来分享下,也顺便复习复习。
cocos2dx的文字描边一直有问题,ios和android的显示都不正确,后者是描边很黑,遇见细的文字就直接一团黑了;前者是完全没有效果。
先聊android,底层用于实现此功能的类是Cocos2dxBitmap.java,他的实现很简单,就是两层文字,上层为正常的文字,下层根据strokeSize画出描边,然后用上层压住下层就好。但是他的底层写错了,写成了下层压住上层,由于本该被上层盖住的黑色部分反而漏了出来,直接导致描边很粗,很丑,该回去之后再对位置粗细适当调整就能做出正确的描边。
再说ios,这个是由CCImage.mm(2.x版本,3.x换到了CCDevice.mm里)实现的,这货更好压根就没实现描边,drawInRect就调用了一次,oc不是很懂,就用了比较蠢的办法,再调用一次drawInRect把新的文字放大一点置黑,压在前者下面,近似实现效果。
大概想到这么多,希望有帮助。