--up in the level1.lua
local target
--in the enter frame function of scene
function target:touch(event)
if event.phase=="began" then
local target=display.newImage("target.png",event.x,event.y)
return true
end
end
答案 0 :(得分:1)
function target:touch(event)
您还没有创建目标。您无法将触摸处理程序分配给尚不存在的对象。
听起来你需要做的是在舞台上添加一个触摸处理程序。我会预先创建图像,然后使用.isVisible = true隐藏它。然后在触摸处理程序中显示并隐藏对象。但无论你是否必须将触摸处理程序放在整个屏幕上而不是单独的小图像。
答案 1 :(得分:0)
删除目标中的“local”:touch:它使用本地目标变量隐藏模块本地:touch()。此外,如果您希望图像在完成触摸后消失,请使用触摸事件的“已结束”和“已取消”阶段。最后,我假设您已将目标初始化为某些内容,但如果没有,则必须添加该内容,否则如何定义touch:event(感谢Rob注意到这一点):
-- first create the target, but don't show it:
local target = display.newImage("target.png", 0, 0)
target.isVisible = false
--in the enter frame function of scene
function target:touch(event)
if event.phase=="began" then
target.x = event.x
target.y = event.y
return true
else if event.phase == "ended" or event.phase == "cancelled" then
if target ~= nil then
target:removeSelf()
target = nil
end
return true
end
end