Нажмите /Touch функцию при добавлении / удалении изображений на Corona SDK
Я пытаюсь сделать игру, похожую на Саймона Сайса. В настоящее время я использую Corona SDK, и я был бы очень признателен, если бы вы помогли мне с этим! Я уже определил мою переменную box1 с изображением. Я пытаюсь сделать так, чтобы, когда я нажимал на изображение коробки, поверх него появлялась другая коробка другого цвета. Мне бы хотелось, чтобы окно, которое появляется, исчезло, когда я отпустил свою мышь. Ниже приведена часть моего кода:
local function lightbox(event)
if event.phase == "began" then
local clickedbox1 = display.newImage("clickedbox.png")
clickedbox1.x = display.contentWidth/5
clickedbox1.y = display.contentWidth/2
end
if event.phase == "ended" then
clickedbox1: removeself()
clickedbox1 = nil
end
end
-->Add the listener to our boxes
box1:addEventListener("touch", lightbox)
Спасибо за ваше время!
1 ответ
Решение
Вы можете использовать event.target.x внутри вашей функции касания, чтобы всплывающее окно отображалось поверх изображения, к которому вы прикоснулись.
ПРИМЕЧАНИЕ. Измените ресурсы изображения, указанные в ваших ресурсах изображения.
local popupImage
local onTouchListener = function(event)
if (event.phase == "began" ) then
popupImage = display.newImageRect("images/btn_cancel_reset.png", 55,18)
popupImage.x = event.target.x
popupImage.y = event.target.y
elseif(event.phase == "ended" or event.phase == "moved") then
--ADD EVENT.PHASE == "MOVED" SINCE THE IMAGE WILL NOT BE REMOVED
--WHEN YOU TOUCH AND DRAG YOUR MOUSE. YOU CAN REMOVE IT IF YOU WANT
if (popupImage ~= nil) then
popupImage:removeSelf()
popupImage = nil
end
end
end
local btnclick = display.newImageRect("images/btn_buy_more_error.png", 126,18)
btnclick.x = display.contentWidth/2
btnclick.y = display.contentHeight/2
btnclick:addEventListener( "touch", onTouchListener)