Нажмите /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)
Другие вопросы по тегам