Lua - 不在Corona SDK中显示文本

时间:2012-06-06 21:25:33

标签: sdk lua corona

在这个应用程序中,我正在使用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

任何想法为什么?

2 个答案:

答案 0 :(得分:1)

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

这有用吗?

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

它呢?

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

它呢?

变量condition包含什么?检查/打印出来并确认它确实是“Win”,相同的情况,没有空​​格等,或者你可以在该函数的相应分支中放置一个print语句以确保它被击中。

可以吗?

如果删除bgAlpha代码,是否会显示?

等等。


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

  

我可以发布所有代码

发布越少越好,因为这意味着您已经完成了上面显示的步骤以尝试隔离问题。十分之九,这样做会直接揭示问题。

答案 1 :(得分:0)

为什么你的字体值为nil? Atleast传递默认系统字体

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