coco2d-x 基础系列 (08) Label类的基本介绍及示例

本文介绍了cocos2d-x中Label类的基础知识,包括Label的用途、继承结构以及基本使用方法。通过示例展示了如何创建和设置Label的字体。还探讨了TTFConfig在设置字体时的作用,尽管其具体用法可能不太直观。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手机使用的尺寸

SM - J3119

主屏尺寸: 5英寸142.3 x 71x 7.9mm

142.3 x 71x 7.9mm
142.3 x 71x 7.9mm

主屏分辨率: 1280x720像素

Label用于渲染文字标签的,下面是它的继承图。

一般使用方式

	// 1. BMFont
	auto myLabel = Label::createWithBMFont("bitmapRed.fnt", "LabelBMFont");
	myLabel->setPosition(visibleSize.width/2, visibleSize.height - 70);
	myLabel->setSize(32);
	scene->addChild(myLabel, 1);

如何创建一个label,有下面的方式。

直接就用英语,懒得翻译。

label字体的字体

下面有七个关于label的,ttf用得多一些,然后会加一些修饰,就是调用一些函数,很容易看明白,

就是有点不明白为什么用TTFConfig

#include "Scene_1.h"
#include "MainScene.h"
cocos2d::Scene *Scene_1::createScene()
{
    Size visibleSize = Director::getInstance()->getVisibleSize();

    auto scene = Scene::create();
    auto layer = LayerColor::create(Color4B::GRAY);
    scene->addChild(layer);

    auto label = LabelTTF::create("Label", "marker Felt.ttf", 32);
    label->setPosition(visibleSize.width/2, visibleSize.height - 30);

    scene->addChild(label, -1);

    // add the menu item for back to main menu
    label = LabelTTF::create("MainMenu", "Marker Felt.ttf", 32);
    auto menuItem = MenuItemLabel::create(label);
    menuItem = MenuItemLabel::create(label);
    menuItem->setCallback([&](cocos2d::Ref *sender) {
        Director::getInstance()->replaceScene(MainScene::createScene());
    });

    auto menu = Menu::create(menuItem, nullptr);
    menu->setPosition(Vec2::ZERO);
    menuItem->setPosition(200, 50);
    scene->addChild(menu, 1);

    // 1. BMFont
    auto myLabel = Label::createWithBMFont("bitmapRed.fnt", "1. LabelBMFont  :)");
    myLabel->setPosition(visibleSize.width/2, visibleSize.height - 80);
    scene->addChild(myLabel, 1);

   // 2. LabelTTF
    auto myLabel2 = Label::createWithTTF("2. LabelTTF", "Marker Felt.ttf", 32);
    myLabel2->setColor(Color3B::RED);
    myLabel2->setPosition(visibleSize.width/2, visibleSize.height - 130);
    scene->addChild(myLabel2, 1);

    // 3. LabelTTF with TTFConfig
    // create a TTFConfig files for labels to share
    TTFConfig labelConfig;
    labelConfig.fontFilePath = "Marker Felt.ttf";
    labelConfig.fontSize = 32;

    auto myLabel3 = Label::createWithTTF(labelConfig, "3. LabelTTF from TTFConfig");
    myLabel3->setColor(Color3B::RED);
    myLabel3->setPosition(visibleSize.width/2, visibleSize.height - 180);
    scene->addChild(myLabel3, 1);

    // 4. Label using SystemFont
    auto myLabel4 = Label::createWithSystemFont("4. Label using SystemFont", "Arial", 32);
    myLabel4->setColor(Color3B::RED);
    myLabel4->setPosition(visibleSize.width/2, visibleSize.height - 230);
    scene->addChild(myLabel4, 1);

    // 5. LabelTTF with shadow, outline and glow
    auto myLabel5 = Label::createWithTTF("5. LabelTTF with Shadow", "Marker Felt.ttf", 32);
    myLabel5->enableShadow();
    myLabel5->setColor(Color3B::RED);
    myLabel5->setPosition(visibleSize.width/2, visibleSize.height - 280);
    scene->addChild(myLabel5, 1);

    auto myLabel6 = Label::createWithTTF("6. LabelTTF with Outline", "Marker Felt.ttf", 32);

    myLabel6->enableOutline(Color4B::WHITE, 1);
    myLabel6->setPosition(visibleSize.width/2, visibleSize.height - 340);
    scene->addChild(myLabel6, 1);

    auto myLabel7 = Label::createWithTTF("7. LabelTTF with Glow", "Marker Felt.ttf", 32);
    myLabel7->enableGlow(Color4B::YELLOW);
    myLabel7->setPosition(visibleSize.width/2, visibleSize.height -410);
    scene->addChild(myLabel7, 1);

    auto mySprite = Sprite::create("origin_red.png");
    mySprite->setPosition(200, visibleSize.height/4 + 60);
    auto mySprite1 = Sprite::create("origin_red.png");
    mySprite1->setPosition(visibleSize.width - 200, visibleSize.height/4 + 60);
    scene->addChild(mySprite);
    scene->addChild(mySprite1);
    return scene;
}
效果,可以看到5 和7比较好看。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值