400-650-7353
您所在的位置:首页 >信息技术投资>统一>【联合】Cocos2d-x的文本渲染系统和菜单

【统一】椰子2d-x的文本渲染系统和菜单

  • 来源:统一资本
  • 2022-07-05 14:30:15
  • 阅读()
  • 分享
  • 手机端入口

一.简介

在游戏中,经常需要添加文字标签。游戏的介绍、游戏中的提示和对话等都需要用到文字。在游戏中,除了系统字体,还有很多地方需要使用由美术人员制作的纹理图片表现的文字。从代码的角度来看,它们与一般的纹理图片没有区别,就是一张包含文字信息的图片,此类文字经常被用来当作游戏的标题或者商标。可可2d-x为开发者提供了专门用于绘制文字的类。

可可2d-x提供了强大的文本渲染功能,既可以直接使用系统字体,也可以自己渲染字体,文本渲染类的继承关系如下图所示:

文本渲染类的继承关系图

上图显示了用于处理文字的Label、LabelAtlas、LabelBMFont和LabelTTF4个类都是通过不同的方式来显示文字的。它们都继承自标签协议类。它们的类名中都有一个单词标签,Cocos2d-x CN,标签代表文字标签的意思,也就是说这些类是专门用于显示文字的对象。另外,因为它们都有一个共同的父类节点所以文字标签与之前学习的图层或者精灵等都属于显示游戏内容的对象。在实际游戏开发中,读者可以按照需要选择一种或多种方式显示文字。

二.TTF标签

标签TTF字体来实现的字体标签。TTF(True Type字体)格式是一种在计算机领域通用的字体格式,可以说是使用最为广泛的文字显示格式,比如在窗户操作系统中,就是通过TTF公司格式字体显示文字的。这种类型字体文件的扩展名是.ttf公司它的继承关系如下图所示:

标签TTF系统

从上图可以看出,标签TTF的另一个父类就是节点这说明开发者完全可以将标签TTF的对象当作节点对象来使用,可以执行各种动作以及实现各种变化效果。

标签TTF类标签对象的特点如下:

l一个TTF字体都包含了某种语言当中的所有字母以及符号,开发者可以随机调整字体的大小、颜色以及样式。

l跼TTF(信托信托基金)标准如今已经得到了普及,所以在很多操作系统中已经提供了多种字体,开发者可以直接使用。

渲染速度相对较慢,所以通常用于显示一些静态的标签和纯文本。

标签TTF标签类为开发者提供了一个创造函数专门用于创建一个标签TTF对象,具体声明如下:

//建设标签TTF标签对象,参数为显示文字内容、字体名称、字体大小、标签尺寸大小、文字水平对齐方式、文字竖直对齐方式

static LabelTTF*create(const std::string&string,const std::string&fontName,float fontSize,const Size&dimensions=Size::ZERO,TextHAlignment hAlignment=TextHAligmment::CENTER,TextVAlignment vAlignment=TextVAligment::TOP)

其中第一个参数是将要显示的文字内容。第二个参数是所用字体的名称。第三个参数是字体的大小。第四个参数是字体显示标签的尺寸大小,过大会浪费内存空间,过小则不能显示完整的内容。最后两个参数是文字绘制时的对齐方式,不同的对齐方式将会导致绘制的文字内容产生位置的变化。水平对齐方式分为左对齐、居中对齐和右对齐。竖直对齐方式分为顶部对齐、中间对齐和底部对齐。接下来通过一个案例来理解标签TTF类在游戏开发中的具体使用方法。

三.测试标签TTF类

新建一个项目名为LabelTTFTest,HelloWorldScene.cpp初始化函数,具体代码如下:

//场景初始化方法

Bool HelloWorld::init()

{

//初始化

如果(!层::init())

{

返回false;

}

Size visibleSize=控制器::getInstance()->getVisibleSize();

Vec2 origin=控制器::getInstance()->getVisibleOrigin();

//建设TTF标签对象,参数为显示文字内容、字体名称、字体大小

auto label1=LabelTTF::create(“top”,“Font/cour.ttf”,64);

label1->setPosition(visibleSize.width/2,visibleSize.height/2+200);

this->addChild(标签1);

//建设TTF标签对象,参数为显示文字内容、字体名称、字体大小、标签大小、文字水平对齐方式

auto label2=LabelTTF::create(“center”,“Font/msyh.ttf”,64,大小(visibleSize.width/3,200),文本对齐::LEFT);

label2->setPosition(visibleSize.width/2,visibleSize.height/2);

this->addChild(标签2);

//建设TTF标签对象,参数为显示文字内容、字体名称、字体大小、标签大小、文字水平对齐方式、文字竖直对齐方式

auto label3=LabelTTF::create(“bottom”,“Font/consola.ttf”,64,大小(visibleSize.width/200),TextH对齐::RIGHT,TextH对齐::CENTER);

label3->setPosition(visibleSize.width/2,visibleSize.height/2-200);

this->addChild(标签3);

}

初始化函数分别演示了使用三种创建并构建TTF标签对象。运行项目,显示如下:

标签TTF的字体渲染效果

四.总结

本节课介绍了可可2d-x中最常用的字体绘制方法-标签TTF类

标签TTF类专门用于绘制TTF(True Type字体)字体,这种类型的字体现在非常普及,游戏中绝大多数的文字都是使用标签TTF绘制的。但是由于其渲染速度相对较慢,所以通常用于显示游戏中的一些静态的标签和纯文本。

标签TTF的几种不同构造函数可以允许开发者在创建信托信托基金字体时指定字体文件路径、文字大小、对齐方式等参数,同时也可以使用设置位置函数来设置该文字在屏幕坐标系下的显示位置。

文章【联合】Cocos2d-x的文本渲染系统和菜单”已帮助

更多内容

>>本文地址:https://www.ujuuye.com/zhuanee/2022/72179.html

结束  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1您的年龄

2您的学历

您更想做哪个方向的工作?

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • Java语言Java语言
  • LinuxLinux操作系统
  • Python+个人工程蟒蛇
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路用户界面/用户设备UI设备
  • 虚拟现实/现实虚拟现实/增强现实
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道快速通道

近期开班时间时间