Вложенные операторы if / else в Lua - Corona SDK - PullRequest
0 голосов
/ 24 апреля 2020

Попытка остановить движение, когда (x) нажата клавиша (w, a, s, d), однако я не хочу останавливать движение, если удерживать нажатой другую клавишу. Это фрагмент кода, который я пытался использовать, который не работал:

  if (event.keyName == 'w' and event.phase == 'up') then
    if (event.keyName == 's' and event.phase == 'down') then
      testObj.deltaPerFrame = {testObj.deltaPerFrame[1], 2 }
    else
      testObj.deltaPerFrame = {testObj.deltaPerFrame[1], 0 }
      return true
    end
  end

1 Ответ

1 голос
/ 24 апреля 2020

У вас один и тот же ключевой объект события, поэтому event.keyName или event.phase не могут иметь два разных значения. Следовательно, ваше состояние не имеет никакого смысла.

Пожалуйста, обратитесь к руководству CoronaSDK.

https://docs.coronalabs.com/api/event/key/keyName.html

Вам придется поддерживать список клавиш, которые в данный момент нажаты.

...