Корона библиотеки - PullRequest
0 голосов
/ 30 мая 2011

Я хочу добавить кнопки, в которых до тех пор, пока я не перестану их нажимать, он будет постоянно выполнять свои функции.

Например, в игре Mario, когда мы начинаем нажимать кнопку «вперед», она будет продолжать перемещать Mario, пока мы не оставим эту кнопку, нам не нужно нажимать снова и снова, чтобы двигаться.

Ответы [ 2 ]

1 голос
/ 21 июля 2012

Вышеописанное будет работать всегда, потому что слушатель enterFrame, что вы ищете, будет больше похож на это ....

    local function moveLeft(event)
    if event.phase=="began" then
    character.x=character.x+1
    elseif event.phase="ended" then
    --do Nothing it wont move anymore anyways
    end
    end

local leftbutton=display.newImage("bla bla bla.png")

leftButton:addEventListener("touch",moveLeft)

Когда вы используете событие касания, что бы вы ему ни говорилине останавливается до тех пор, пока вы не отпустите, и он отличается от касания, потому что при нажатии вы должны выпускать с довольно высокой скоростью, а событие регистрируется только при отпускании.

0 голосов
/ 31 мая 2011

Я предполагаю, что ваш вопрос "как сделать кнопку, которая будет работать непрерывно до отпускания?" Сначала добавьте слушателя для события «touch».

События касания имеют несколько фаз, для начала и конца касания. Поэтому в функции слушателя используйте if / else для ответа на различные фазы.

if event.phase=="began" then
  Runtime.addEventListener("enterFrame", doSomething)
elseif event.phase=="ended" then
  Runtime.removeEventListener("enterFrame", doSomething)

Теперь переместите Марио в функцию doSomething.

...