lua中的Corona SDK display.remove()
此代码(lua)通过按文本“new”从表“local a”中提供一个随机值。不幸的是,新的随机值正好出现在旧的随机值之上。我尝试过删除旧值,例如使用display.remove(mmDis),但无效 第二个问题是,有时我还返回值“nil”,而不仅仅是表中的四个条目 这两件事都必须很容易解决,但作为lua的新手,我花了将近4个小时来处理这些小事情,现在我不知道该做些什么来改变它lua中的Corona SDK display.remove(),lua,lua-table,Lua,Lua Table,此代码(lua)通过按文本“new”从表“local a”中提供一个随机值。不幸的是,新的随机值正好出现在旧的随机值之上。我尝试过删除旧值,例如使用display.remove(mmDis),但无效 第二个问题是,有时我还返回值“nil”,而不仅仅是表中的四个条目 这两件事都必须很容易解决,但作为lua的新手,我花了将近4个小时来处理这些小事情,现在我不知道该做些什么来改变它 -- references local mmDis -- functions function randomText
-- references
local mmDis
-- functions
function randomText(event)
display.remove(mmDis)
local a = {"Banana!","Apple!","Potato","Pie"}
com = (a[math.random(0.5,#a)])
local mmDis = display.newText(tostring(com),
display.contentWidth*0.57, display.contentHeight*0.7,
display.contentWidth*0.9, display.contentHeight*0.8, "Calibri", 60)
end
-- menu button
local textnew = display.newText("New", 0, 0, "Calibri", 40)
textnew.x = display.contentWidth*0.2
textnew.y = display.contentHeight*0.9
textnew:addEventListener ("tap", randomText )
很难理解您想做什么,因为当您创建
textnew
时,它位于一个位置和大小,而在randomeText()
中,您似乎想用一个新的文本对象替换该文本对象,但您将它放置在不同的位置和大小。每次点击时,您似乎都想更改对象的文本;在这种情况下,不需要替换文本对象,只需替换其文本即可
此外:
- 您有两个“本地MMDI”,第二个将隐藏第一个,不确定您在那里寻找什么
- 仔细阅读
- com已经是一个字符串,因此您不需要
tostring
local menuTextOptions = {
text = "New",
x = display.contentWidth*0.2,
y = display.contentHeight*0.9,
align = 'left',
font = "Calibri",
fontSize = 40,
}
local textnew = display.newText(menuTextOptions)
-- functions
function randomText(event)
local a = {"Banana!","Apple!","Potato","Pie"}
local com = a[math.random(1,#a)]
textnew.text = com
-- if you want to change position too:
-- textnew.x = display.contentWidth*0.2
-- textnew.y = display.contentHeight*0.9
-- if you want to change size too, but only used for multiline text:
-- textnew.width = display.contentWidth*0.9
-- textnew.height = display.contentHeight*0.8
end
textnew:addEventListener ("tap", randomText )
有时,当你点击按钮时,它看起来好像什么都不做,但那是因为随机数恰好与前面的相同,你可以设置一个循环来防止出现这种情况。如果你真的想改变位置和/或宽度,那么上面的代码就明确了你应该在哪里做 所以,这就是基本代码(目前没有任何附加代码:))应该是什么样子。非常感谢Scholli!:
local menuTextOptions = {
text = "New",
x = display.contentWidth*0.2,
y = display.contentHeight*0.9,
align = 'left',
font = "Calibri",
fontSize = 40,
}
local textnew = display.newText(menuTextOptions)
local replacement = display.newText(menuTextOptions)
replacement.y = display.contentHeight*0.5
-- functions
function randomText(event)
local a = {"Banana!","Apple!","Potato","Pie"}
local com = a[math.random(1,#a)]
replacement.text = com
end
textnew:addEventListener ("tap", randomText )
用
math.random(1,#a)
代替第二道题。谢谢,这已经帮了大忙,竖起大拇指!您好,非常感谢您的详细评论。你对代码的修改给了我正确的想法来处理我想做的事情。该计划是“新”总是留在那里,在屏幕中间,你总是得到一个新的部分从随机表点击“新”。