代码之家  ›  专栏  ›  技术社区  ›  Mr. E

如何更新corona SDK中的值?

  •  0
  • Mr. E  · 技术社区  · 8 年前

    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
    
    2 回复  |  直到 8 年前
        1
  •  2
  •   Piglet    8 年前

    首先,没有“if函数”这样的东西。

    假设您提供的代码只执行一次,if语句也只计算一次。因为分数很可能不是>2当这种情况发生时,if语句体根本不进行计算。这就是为什么什么都没发生。

    然后计算if语句。

    你应该移动那个球。x分配给myTouchListener,以便在每次分数变化时对其进行评估。

    好好想想。为什么要再次评估if语句?谁会引发这种情况?为什么?

        2
  •  1
  •   Evan Barnes    8 年前

    这应该可以解决问题:

    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)
    

    你也不能只让分数=分数+1,因为如果你没有初始化它,分数实际上等于null。所以null=null+1没有任何意义。