cocos 2dx label源码阅读

2022-04-08  本文已影响0人  许彦峰

system, ttf(true type font)

enum class LabelType {
        TTF, // createWithTTF
        BMFONT,
        CHARMAP,
        STRING_TEXTURE,// default
    };
enum class LabelEffect {
    NORMAL,
    OUTLINE,
    SHADOW,
    GLOW,
    ITALICS,
    BOLD,
    UNDERLINE,
    STRIKETHROUGH, // 删除线
    ALL
};

STRING_TEXTURE

使用系统将整个文字绘制成一张纹理,然后贴到sprite上渲染。
Sprite* _textSprite;
Sprite* _shadowNode;

TTF

CHARMAP

按照anscii码的顺序依次罗列字母和对应的纹理,渲染时也借助了fontAtlas

fontAtlas.texture的key就是plist文件名

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>version</key>
    <integer>1</integer>
    <key>textureFilename</key>
    <string>tuffy_bold_italic-charmap-hd.png</string>
    <key>itemHeight</key>
    <integer>128</integer>
    <key>itemWidth</key>
    <integer>96</integer>
    <key>firstChar</key>
    <integer>32</integer>
</dict>
</plist>

BMFont

和charmap同理,只是配置文件数据格式不太一样而已

creator处理

上一篇 下一篇

猜你喜欢

热点阅读