在这个应用程序中,我正在使用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
端
任何想法为什么?
答案 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)