我的第一个Lua代码。但是嘿,我卡住了。

好的,所以我是一个新手Lua语言的人。 我的问题是我无法让代码按我想要的方式运行。

所以我想让我的代码在每次敲击时显示1张新的图片。

因此,如果我敲击3次,显示器上会显示3张图片。

这是我到目前为止的代码,相信我,我搜索了又搜索,但我找不到任何可以帮助我解决的东西,所以我想这是我的最后解决方案。

function screenTap()

local randomPicture = display.newImage("pictures/Boy.png")

randomPicture.x = 160;
randomPicture.y = 250;
randomPicture.width = 250;
randomPicture.height = 250;

end
display.currentStage:addEventListener("tap",screenTap)

这段代码将在我敲击时显示一张图片。(一次敲击将显示图片)。 我的问题:我想获取每次敲击一个图片。所有图片仍将显示在屏幕上。因此,如果我敲击1000次,我可以有1000张图片。

点赞
用户829155
用户829155

你应该清除你之前的图片。为此,将 picture 的引用移到外部范围。然后,你应该保留当前图片的索引,这样就可以在每一次点按中迭代 pictures 数组。或者你可以使用 math.random 来获取每次点按随机的图片索引。

-- 保留当前图片的引用,仅在未来需要移动或删除该图像时才需要
local picture = nil

-- 图片名称数组,在你的资源中必须有 3 张图片,名称必须与下面一致
local pictures = {"Boy", "Girl", "Animal"}

-- 保持当前图片索引,需要在每次点按中迭代图片数组
local pictureId = 0

-- 将 `event` 添加到参数中,这样你可以从该事件中获得更多信息
function screenTap(event)

    -- 如果不需要清除之前的图片,请删除这些行
    if picture ~= nil then
        picture:removeSelf()
        picture = nil
    end

    -- 调用该函数时,将创建一个具有当前图片索引的新图片
    picture = display.newImage("pictures/" .. pictures[idx] .. ".png")

    -- 使用 `event` 来获取用户点击位置,并将图像移动到该位置
    picture.x = event.x
    picture.y = event.y
    picture.width = 250
    picture.height = 250

    -- 增加当前图片的索引
    pictureId = pictureId + 1

    -- 如果大于或等于图片数量,则将其重置为零
    if pictureId >= #pictures then
        pictureId = 0
    end

end

display.currentStage:addEventListener("tap", screenTap)
2014-08-26 21:13:57