【问题标题】:Cocos2d-Android Custom font not workingCocos2d-Android 自定义字体不起作用
【发布时间】:2012-06-09 08:19:09
【问题描述】:

我正在尝试使用带有 CClabel 的 Cocos2d-Android 中的自定义字体,我已将我的字体文件添加到资产中并尝试通过名称“Faraco_Hand.ttf”和“Faraco_Hand”使用它,但它不起作用,我用谷歌搜索周围,​​但还没有找到任何解决方案。这就是我的代码的样子:

currentVideoLabel = CCLabel.makeLabel(VideosLabels[currentSelected], "Faraco_Hand.ttf", winSize.width/41);
        currentVideoLabel.setPosition(CGPoint.make(winSize.width/2, 20));
        addChild(currentVideoLabel);

如果有人知道,请帮助我。

【问题讨论】:

  • Cocos2d-android 不再支持。必须使用cocos2d-x,跨平台,使用JNI才能使用c++代码。更多信息HERE。你问的问题是在cocos2d-x里面的一个测试中解决的,看看吧。

标签: cocos2d-android custom-font


【解决方案1】:

您好,我在这里使用这种方式在我的游戏中添加字体我正在与您分享我的代码检查它希望它对您有帮助我在标签上设置我的字体这是设置字体的唯一方法...一切顺利

示例:1

 CCLabel labelcontinue = CCLabel.makeLabel("continue", "fonts/JimboStd-Black.otf", 14);
                labelcontinue.setPosition(CGPoint.ccp(272, 95));
                labelcontinue.setColor(ccColor3B.ccc3(165, 42, 42));
                mainPaperNode.addChild(labelcontinue, 25);

示例2:

  CCLabel labelWelcome = CCLabel.makeLabel("Welcome", "fonts/JimboStdBlack.otf",20);
        labelWelcome.setColor(ccColor3B.ccc3(139, 69, 19));
        labelWelcome.setPosition(CGPoint.ccp(innerArea.getContentSize().getWidth() / 2, (innerArea.getContentSize().getHeight() / 2) + 138));
        innerArea.addChild(labelWelcome);

【讨论】:

  • 为什么会出现问题....?在使用此代码时遇到任何错误..?我在我的游戏中使用它并且它工作正常..
  • Priyank.. 不,它没有对我的字体进行任何更改。我想使用 Comic sans 字体。
  • 你必须使用 .otf 文件来使用字体,像这样是 Comicsans.otf 格式..?那么它应该可以工作
  • 我使用的是 .ttf,但现在我尝试使用 Comic.otf。但仍然如果不进行更改。我已将 .ttf 转换为 .otf
  • 查看此链接。我需要 cocos2d-android 人员的帮助:stackoverflow.com/questions/17971120/…
【解决方案2】:

我知道这是迟到的回复,无论如何它可能会帮助搜索相同内容的人...... CCLabel 支持外部字体,但一些 ttf 不会被 android 识别,所以它会通过异常,所以最好你尝试另一种字体而不是这个代码是相同的......

  label = CCLabel.makeLabel("label value", "external_font_name.ttf", 30);
  label.setPosition(CGPoint.make(winSize.width/2, 20));
  addChild(label);

【讨论】:

【解决方案3】:

我认为你的方法没有任何问题。我想问题是你正在重命名原始字体文件。用原来的名字重命名字体文件名(写在字体文件本身,检查附图)。

在这种情况下,我将 ttf 文件保存在 Resources/fonts 文件夹中,并编写如下代码:

CCLabelTTF* label = CCLabelTTF::create("Hello World", "fonts/A Damn Mess.ttf", 20);

还要检查 CCLabelTTF 而不是 CCLabel

希望这会对你有所帮助。

【讨论】:

【解决方案4】:

嘿,这会有所帮助。这段代码对我来说很好。将自定义字体 int assets->fonts

CCLabel label1 = CCLabel.makeLabel("Points: 0", "fonts/pin.ttf", 28);
    label1.setColor(ccColor3B.ccWHITE);
    label1.setPosition(280f * scaleX, 550f * scaleY);
    addChild(label1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2012-04-22
    相关资源
    最近更新 更多