2014-02-08 71 views
0
--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 

回答

1
function target:touch(event) 

你還沒有創建目標。您不能將觸摸處理程序分配給尚不存在的對象。

這聽起來像你需要做的是添加一個觸摸處理程序的階段。我會預先創建圖像,並使用.isVisible = true隱藏它。然後在你的觸摸處理程序中,顯示並隱藏該對象。但是,無論你需要將觸摸處理程序放在整個屏幕上而不是個別的小圖像上。

+0

+1注意到該函數是尚未創建的對象的一部分。我延長了我的回答。 – Schollii

+0

我認爲target.alpha = 0也可以工作 –

+0

感謝您的答案,它現在正在工作.. –

0

刪除目標中的「本地」:touch:它隱藏模塊本地,使用變量local爲target:touch()。另外,如果您希望圖像在完成觸摸後消失,請使用觸摸事件的「已結束」和「已取消」階段。最後,我假設你初始化目標的東西,但如果沒有,你必須添加太多,否則你怎麼能定義觸摸:事件(感謝Rob爲BTW注意到這一點):

-- 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 
+0

事情是我想創建圖像時,用戶在確切的x和y位置上觸摸屏幕,並刪除它時,用戶提起觸摸.. –

+0

@SyedZainulAbedin ok擴展答案;請嘗試儘可能具體,因爲你可以在你發佈的問題 – Schollii

+0

模擬器給出的錯誤目標是無 –

相關問題