【问题标题】:Corona SDK built-in fonts are not workingCorona SDK 内置字体不起作用
【发布时间】:2013-11-07 15:35:09
【问题描述】:

我正在使用 Corona SDK 进行游戏开发。我需要为我的应用程序使用“comic sans font”。 我正在使用这样的字体。

GAME_FONT = "ComicSansMS"
local txtTitle = display.newText("My Text", 0, 0, GAME_FONT, 30)

这在模拟器中运行良好,但在真正的 iPhone 设备上却不行。我也试过下载这个字体并添加到项目中,然后更新build.settings文件。

settings = {

    orientation = {
        default = "landscapeRight",
        supported = { "landscapeRight", }
    },

    iphone = {
        plist = {
            UIAppFonts = { "comic.ttf"},
            UIStatusBarHidden = true,
            UIPrerenderedIcon = true, -- set to false for "shine" overlay           
            UIApplicationExitsOnSuspend = true, -- uncomment to quit app on suspend
        }
    },
}

但它仍然无法在真正的 iPhone 设备上运行。

我还通过以下代码确定“ComicSansMS”是否内置。

local fonts = native.getFontNames()
    for i,fontname in ipairs(fonts) do
        print(fontname)
    end

我可以在列表中看到“ComicSansMS”。 任何建议将不胜感激。

【问题讨论】:

    标签: fonts coronasdk game-physics


    【解决方案1】:

    使用 Windows 模拟器或 iOs 设备测试字体是不同的。

    您关于如何确保“ComicSansMs”在您的 iOs 设备中的代码看起来就像您检查了 Windows 模拟器的控制台(带打印)...

    您真的应该在您的 iOs 设备上进行测试并查看结果:

    local fonts = native.getFontNames()
    local fontsNames = ''
    for i,fontname in ipairs(fonts) do
        fontsNames = fontname .. ',' .. fontsNames
    end
    
    local textFontsNames = display.newText(fontsNames, 0, 0, native.systemFont, 30)
    

    【讨论】:

    • 感谢Emmanuel A,回复,你说得对,这个字体在设备上运行时不可用,但我想知道我在项目中也添加了.ttf,那为什么不从文件中选择呢?跨度>
    【解决方案2】:

    我不确定 Comic Sans 是 iOS 设备的内置字体。您可以参考this 链接以了解有关可用设备字体的更多信息。

    并将字体名称更改为Comic Sans MS,而不是ComicSansMS(空格很重要)。 还将comic.ttf 文件复制并粘贴到您的main.lua 所在的应用程序文件夹中。

    有关在您的电晕应用程序中集成自定义字体的更多信息,您可以参考我在帖子中的回答: How do you integrate custom fonts in an app?

    继续编码........ ?

    【讨论】:

    • 感谢 krs,​​Comic Sans 在设备中不可用,我现在检查一下。但是我已经在我的项目中添加了comic.ttf文件并在build.settings文件中进行了更新,但仍然无法正常工作。
    • 您是否将“ComicSansMS”重命名为“Comic Sans MS”?
    【解决方案3】:

    一个小技巧:将您的字体文件重命名为与您的字体具有相同的“逻辑”名称(ComicSansMS),不带 ttf 扩展名,并确保它仍在主资源目录中,这样您就可以自然-天生兼容 Android :)

    Android 默认使用内部名称检查字体,因此如果您将所有添加的字体重命名为逻辑名称,它将在任何地方都可以使用,以后就不会那么头疼了 :)

    如果你没有模拟器,还要确保在真正的 iphone 设备上进行测试,至少在 google android 模拟器中进行测试,因为有些字体在 corona 模拟器上可以很好地工作,但在 iphone / android 上根本不能工作: )

    【讨论】:

    • 另外,如果由于某种原因尚未在计算机上安装字体,它会有所帮助
    猜你喜欢
    • 2015-08-10
    • 2014-06-09
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2015-03-04
    • 2015-11-16
    • 1970-01-01
    相关资源
    最近更新 更多