【问题标题】:in LUA....Corona SDK... My new score is Overlapping without erasing old score?在 LUA ....Corona SDK...我的新分数是重叠而不擦除旧分数?
【发布时间】:2013-11-10 13:07:55
【问题描述】:

在下面的代码中,它显示“SCORE: 100”或其他任何随着分数/分数的变化 总数重叠在另一个之上,您无法阅读它们... 我希望在显示新分数/分数之前删除/删除旧分数 任何想法如何解决这个问题......这是 LUA 并使用 CORONA SDK 在我的测试期间,我发送了打印语句以尝试对部分进行故障排除

--正在另一个位置计算积分 --更新得分点

local function updateScore(Points)

  if WTF == 1 then
    print ("SCORE: -->",Points)

    --PointsText:removeSelf(PointsText)

        PointsText = display.newText(Points,0,0,native.sytemFont,42)        
        PointsText.text = Points
        PointsText.xscale = 0.5; PointsText.yscale = 0.5
        PointsText:setTextColor(155,155,225)
        PointsText.x = centerX * 1
        PointsText.y = centerY - 150

        ScoreTxt = display.newText("Score: ",0,0,native.systemFont,40) 
        ScoreTxt:setTextColor(220,50,50)
        ScoreTxt.x = display.contentCenterX
        ScoreTxt.y = display.contentCenterY-100
    end
end

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    每次调用 updateScore 都是在创建一个新的文本对象。此代码可确保您只创建一次文本。

    local function updateScore(Points)
        if PointsText == nil then
            PointsText = display.newText(Points,0,0,native.sytemFont,42)        
        end
    
        PointsText.text = Points
        PointsText.xscale = 0.5; PointsText.yscale = 0.5
        PointsText:setTextColor(155,155,225)
        PointsText.x = centerX * 1
        PointsText.y = centerY - 150
    
        ScoreTxt = display.newText("Score: ",0,0,native.systemFont,40) 
        ScoreTxt:setTextColor(220,50,50)
        ScoreTxt.x = display.contentCenterX
        ScoreTxt.y = display.contentCenterY-100
    end
    

    你也可以这样做:

    local function updateScore(Points)
        if PointsText then
            PointsText:removeSelf()     
        end
    
        PointsText = display.newText(Points,0,0,native.systemFont,42)        
        PointsText.text = Points
        PointsText.xscale = 0.5; PointsText.yscale = 0.5
        PointsText:setTextColor(155,155,225)
        PointsText.x = centerX * 1
        PointsText.y = centerY - 150
    
        ScoreTxt = display.newText("Score: ",0,0,native.systemFont,40) 
        ScoreTxt:setTextColor(220,50,50)
        ScoreTxt.x = display.contentCenterX
        ScoreTxt.y = display.contentCenterY-100
    end
    

    【讨论】:

    • 你试过我贴的代码了吗?它允许您更改乐谱文本的值,这样您就不会得到重叠的文本对象。另请参阅我的编辑。
    • 谢谢.....谢谢谢谢....我一直在努力......感谢上帝为您和 STACKOVERFLOW.COM
    • @user2975358 如果你真的想感谢他,请接受他的回答
    猜你喜欢
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多