0
我正在開發使用Corona SDK的Nintendo俄羅斯方塊遊戲的克隆版本。我的屏幕上方有兩個文字對象:一個代表當前的等級,另一個代表當前的得分。每當我填充塊時,我的程序會擦除此行並添加一些分數和+1級別。問題在於,一旦我更新了分數和級別變量並使用myText.text來刷新我的文本,它就不會擦除舊文本並創建與舊文本重疊的新文本。Corona SDK。 Lua中。 display.newText() - 我更新的分數文本重疊舊的沒有擦除
我的代碼如下: 1)我在現場的乞討聲明瞭兩個局部變量
local scoreText
local levelText
2)我有功能刪除行和更新文本
function eraseLines()
-- some code that erases lines
scores = scores + 10
scoreText.text = "Score:"..scores
level = level + 1
levelText.text = "Level:"..level
end
3 )場景:顯示(事件)我創建我們的文本
function scene:show(event)
-- some code
scoreText = display.newText("Score:"..scores, halfW*0.5, 20)
levelText = display.newText("Level:".. level, halfW*1.5, 20)
sceneGroup:insert(scoreText)
sceneGroup:insert(levelText)
scoreText:setFillColor(0, 0, 0)
levelText:setFillColor(0, 0, 0)
end
請幫我找爲什麼發生重疊
你打電話給場景:多次顯示(事件)嗎? 對於更新文本的函數,eraseLines也是一個非常糟糕的名字。 爲什麼不把它命名爲updateScoreLevel或者是爲了避免混淆 – Piglet
@Piglet 1)我只調用場景:show(event)一次。在這個事件中有兩個階段:「將」和「做」。當我提出我的問題時,我的代碼在「意志」階段執行。然後我剪切並粘貼到「完成」階段,重疊不再發生。我不確定它爲什麼這樣工作。 2)eraseLines函數會擦除屏幕上的Tetris塊的行並更新文本。可能最好排除那裏的文本處理形式,並將其作爲一個單獨的函數。 –