在Corona中的评分叠加。

我是一个 Corona 新手,我在我的记分系统上遇到了一些问题。当你开始游戏时,分数应该从0开始。当玩家得分时,分数应该增加两分。它确实增加了,但是我们得到的不是数字 0 变成数字 2,而是数字 0 上覆盖着数字 2。所以它重叠了。我找不到任何实际解决这个问题的文章,所以我认为我在做错什么。有帮助吗?或者只是指点我正确的方向?提前感谢。 :)

点赞
用户1682268
用户1682268

你的代码存在的问题是每次调用 displayScore() 函数时,它都会创建另一个 newText ,因为你总是调用

local scoreText = display.newText("Score: ", 415, 100, native.systemFont, 50)

尝试将 scoreText 声明在 displayScore() 函数外面,就像这样:

local scoreText = display.newText("Score: ", 415, 100, native.systemFont, 50)

function displayScore()
    scoreText:setTextColor(255, 255, 255)
    scoreText.text = scoreText.text = "Score: "..score

end
2013-08-17 08:02:18
用户1979583
用户1979583

试试这个并且改变你的代码:

score = 0
local scoreText = display.newText(score, 100, 100, native.systemFont, 50)
scoreText:setTextColor(255, 255, 255)

function displayScore()
    --[[ 这里的问题在于你在代码中一遍又一遍地创建新的标签。
          所以要么删除旧的标签并使用 'scoreText:removeSelf()' 添加新标签,
          要么只需更新代码 --]]
    score = score + 1
    scoreText.text = score
end

Runtime:addEventListener("tap",displayScore)

继续编码............ :)

2013-08-17 08:02:56