如何更新 corona SDK 中的值?
How to update a value in corona SDK?
为什么我检查分值时我的代码不起作用?很长一段时间以来,我一直在尝试解决这个问题,但没有任何效果。为什么 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
首先没有"if function".
假设您提供的代码仅执行一次,您的 if 语句也仅被评估一次。当发生这种情况时,得分很可能不会 > 2,因此根本不会评估 if 语句主体。这就是什么都没有发生的原因。
执行代码时,您定义了一个函数 myTouchListener。然后创建一个圆并添加 myTouchListener 函数作为其事件侦听器。
然后计算 if 语句。
您应该将 ball.x 分配给 myTouchListener,以便在每次分数变化时对其进行评估。
想一想。为什么要再次评估 if 语句?谁会触发它,为什么?
这应该可以解决问题:
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,而不是在程序第一次出现时检查一次 运行。
你也不能只让 score = score + 1,因为如果你没有初始化它,score 实际上等于 null。所以 null = null + 1 没有任何意义。
为什么我检查分值时我的代码不起作用?很长一段时间以来,我一直在尝试解决这个问题,但没有任何效果。为什么 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
首先没有"if function".
假设您提供的代码仅执行一次,您的 if 语句也仅被评估一次。当发生这种情况时,得分很可能不会 > 2,因此根本不会评估 if 语句主体。这就是什么都没有发生的原因。
执行代码时,您定义了一个函数 myTouchListener。然后创建一个圆并添加 myTouchListener 函数作为其事件侦听器。
然后计算 if 语句。
您应该将 ball.x 分配给 myTouchListener,以便在每次分数变化时对其进行评估。
想一想。为什么要再次评估 if 语句?谁会触发它,为什么?
这应该可以解决问题:
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,而不是在程序第一次出现时检查一次 运行。
你也不能只让 score = score + 1,因为如果你没有初始化它,score 实际上等于 null。所以 null = null + 1 没有任何意义。