【问题标题】:Lua - Not displaying text in Corona SDKLua - 在 Corona SDK 中不显示文本
【发布时间】:2012-06-07 06:22:09
【问题描述】:

在我使用 Corona SDK 创建的这个应用程序中,当您获胜时,文本“You win”会出现,但不会出现。我可以发布所有代码,但我不认为其余的会很重要,所以这里只是精华:

_H = display.contentHeight;
_W = display.contentWidth;
mRand = math.random;
o = 0;
time_remain = 20;
time_up = false;
total_orbs = 45;
total_secs = 20;
ready = false;

local backGround = display.newImage("media/bg.png");

backGround.xScale = 2;
backGround.yScale = 2;

loseMSG = display.newText("You Lose!", _W/2, _H/2, nil, 50)
loseMSG.isVisible = false

winMSG = display.newText("You Win!", _W/2, _H/2, nil, 50)
winMSG.isVisible = false

local countdowntxt = display.newText(time_remain, 0, 0, native.systemFont, 60);
countdowntxt.xScale = .5; countdowntxt.yScale = .5;
countdowntxt:setReferencePoint(display.BottomRightReferencePoint);
countdowntxt.x = _W-20; display.y = _H-20;
countdowntxt:setTextColor(0, 0, 0)


function winLose(condition)
if (condition == "Win") then
    bgAlpha = display.newImage("media/bgAlpha.png");
    bgAlpha.xScale = 2;
    bgAlpha.yScale = 2; 
    winMSG.isVisible = true -- Here the win text should become visible, but doesn't
elseif (condition == "Fail") then
    bgAlpha = display.newImage("media/bgAlpha.png");
    bgAlpha.xScale = 2;
    bgAlpha.yScale = 2; 
    loseMSG.isVisible = true        
end

结束

任何想法为什么?

【问题讨论】:

  • Lua 不是首字母缩写词,它是一个名字。所以它是 Lua,而不是 LUA,除非你在大喊大叫。
  • 对不起,大写锁定 ;)

标签: sdk lua coronasdk


【解决方案1】:

您需要采取分而治之的方法。

这行得通吗?

winMSG = display.newText("You Win!", _W/2, _H/2, nil, 50)
winMSG.isVisible = true <-- note this is set to true

有吗?

winLose 每一个都被调用吗?将打印语句或断点或您在平台上使用的任何内容放入其中进行调试。

有吗?

变量condition 包含什么?检查/打印它并验证它确实是“Win”、相同的大小写、没有空格等,或者您可以在该函数的适当分支中放置一个打印语句以确保它被命中。

这样好吗?

如果您删除bgAlpha 代码,它会显示吗?

以此类推。


我不知道 Corona,但谷歌搜索 the docs for newText 可能你的参数有误(你没有传递字体)。

我可以发布所有代码

您发布的内容越少越好,因为这意味着您已经完成了上述步骤来尝试找出问题所在。十分之九,这样做会自行揭示问题。

【讨论】:

    【解决方案2】:

    为什么你给 nil 的字体值? 至少通过默认系统字体

    loseMSG = display.newText("You Lose!", _W/2, _H/2, native.systemFont, 50)
    winMSG = display.newText("You Win!", _W/2, _H/2, native.systemFont, 50)
    

    【讨论】:

    • 我也尝试过使用native.systemFont,但结果是一样的,所以我决定你使用图像。也许有点重,但更容易放置 :) 感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2015-09-02
    • 2016-08-01
    相关资源
    最近更新 更多