下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

教你在Cocos2D-X的安卓游戏中使用自己设定字体

作者:课课家教育     来源: http://www.kokojia.com点击数:1726发布时间: 2019-04-17 10:15:36

标签: Cocos2D-X安卓Cocos2D-X教程Cocos2D-X技巧

  我们在游戏开发中常常会对游戏中的字体不满意,那么怎么设置安卓游戏中的字体呢?本篇教程将教你怎么在Cocos2d-x的安卓游戏中使用自己设定的字体。

  在使用cocos2d-x发布Android平台游戏时,游戏中可能需要显示中文字体, 或者想显示漂亮的自定义字体,这怎么办呢?

  cocos2d-x中字体标签提供了CCLabelAtlas, CCLabelBMFont CCLabelTTF

  1.CCLabelAtlas速度快,支持简单有限的几个字符或数字集合

  2.CCLabelBMFont

  我们可以用CCLabelBMFont来加载字体编辑器生成的.plist文件,但是当显示的文字很多时,这种做法就有点费时费力了

  如:我们想显示游戏中剧情介绍

  3.CCLabelTTF

  支持选择一种字体来显示文字,但是只支持系统中默认字体

  CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);

  问题:我们在Android游戏中想显示游戏剧情,想用自己指定的一种字体gril.ttf(非系统默认字体),怎么办

  其实cocos2d-x已经提供了帮我们实现了

  构造CCLabelTTF中指定的字体名传给了CCTexture2D

教你在Cocos2D-X的安卓游戏中使用自己设定字体_Cocos2D-X安卓_Cocos2D-X教程_Cocos2D-X技巧_课课家

  CCTexture2D又将字体名传给了CCImage

  (PS:这里调用的是android平台下的CCImage类(./platform/android/CCImage.h)

  而不是win32平台下的CCImage类(./platform/win32/CCImage.h) )

  android平台下的CCImage

  然后调用了android平台下的BitmapDC

  这里显示了调用java代码Cocos2dxBitmap.java下的createTextBitmap函数

  在newPaint函数中调用了字体加载

  (PS:Typeface类定义字体和字体内在的类型。这个类被用在画笔Paint设置的时候,比如用textSize,textSkewX和textScale设置来指定text在画的时候如何来显示和测量。

  android中用Typeface来指定字体)

  另一点需要注意的是:字体需要.ttf结束

  使用方法:

  1.在proj.android\\assets文件夹中添加girl.ttf

  2.程序中调用对应的字体就可以了

  CCSize size = CCDirector::sharedDirector()->getWinSize();

  CCLabelTTF* label = CCLabelTTF::create("少女HelloWorld", "girl.ttf", 24);

  label->setPosition(ccp(size.width/2, size.height/2));

  addChild(label);

  3.如果你需要显示汉字,则需要将包含有字符串的文件(如.cpp)转换为UTF-8格式编码,否则会显示乱码

  iOS和win32平台没有测试,相信的差不多

  附上测试图片:

  哈哈,现在我们可以在游戏中打包自己想要的字体啦!

赞(12)
踩(3)
分享到:
华为认证网络工程师 HCIE直播课视频教程