检查分数值时,为什么我的代码无效?我一直试图解决这个问题很长一段时间但没有任何作用。为什么scoreTxt会更新,但if函数什么都不做?
local function myTouchListener( event )
if (event.phase == "began") then
transition.pause()
score = score +1
scoreTxt.text = score
end
end
local ball = display.newCircle(0,0,40)
ball:addEventListener("touch",myTouchListener)
if(score > 2)then
ball.x = display.contentCenterX
--NOTHING HAPPENS HERE
end
答案 0 :(得分:2)
首先,没有" if function"。
假设您提供的代码仅在if语句也只评估一次后执行。因为分数很可能不是> 2当发生这种情况时,根本不评估if语句体。这就是为什么没有发生的原因。
执行代码时,定义一个函数myTouchListener。然后创建一个圆并将myTouchListener函数添加为其事件侦听器。
然后你评估if语句。
您应该将ball.x赋值移动到myTouchListener,以便在每次分数更改时对其进行评估。
想一想。为什么要再次评估if语句?谁会触发这个以及为什么?
答案 1 :(得分:1)
这应解决问题:
local score = 0
local function myTouchListener( event )
if (event.phase == "began") then
transition.pause()
score = score +1
scoreTxt.text = score
if(score > 2)then
ball.x = display.contentCenterX
end
end
end
local ball = display.newCircle(0,0,40)
ball:addEventListener("touch",myTouchListener)
您遇到的问题是if语句发生一次且得分等于0或null。你需要检查得分> 2每次触摸后,不只是首次运行程序时。
你也不能只得分=得分+ 1,因为如果你没有初始化得分实际上等于null。所以null = null + 1没有任何意义。