Есть ли эквивалент для цикла "goto" в C # в lua?(Должно быть совместимо с Love2D) - PullRequest
0 голосов
/ 15 февраля 2019

В настоящее время я пишу игру для школьного проекта, что-то вроде игры Space Invader.В настоящее время я пытаюсь создать экран с надписью «Нажмите R для перезапуска», чтобы, когда игрок нажимает R, игры возвращались к началу.Как в примере C #: Start: (весь ваш код), перейдите в Start.Так что мой вопрос есть ли эквивалент этого?Я не могу найти что-то об этом в Интернете.

Я уже пробовал цикл возврата, но он вылетает из игры еще до ее запуска.Я видел, что Lua действительно имеет цикл goto в версии 5.2.Но Love2D поддерживает только Lua 5.1, так что теперь я попробовал повторить ... пока (условие), но все равно не работает

Начало кода:

repeat

score = 0
enemykills = 0
local start = love.timer.step( )

Конецкод:

    love.graphics.setColor(255, 255, 255)
    for _,b in pairs(player.bullets) do
      love.graphics.rectangle("fill", b.x, b.y, 2, 2)
    end
end
until not love.keyboard.isDown("r")

Я хочу, чтобы игра перезапускалась при нажатии клавиши R, но она либо вылетает, либо ничего не делает.

1 Ответ

0 голосов
/ 15 февраля 2019

Love2D будет повторно вызывать ваши функции love.update и love.draw.Вам не нужно иметь такой цикл.Что вам нужно сделать, это помнить, что ваша игра находится в состоянии «ждать, пока пользователь нажмет« r », чтобы перезапустить».Итак, ваш код будет выглядеть примерно так:

local current_state = "normal"

function love.update(dt)
    if(current_state == "wait") then
        if(love.keyboard.isDown("r")) then
            current_state == "normal"
        end
    else
        --[[Do normal processing]]
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...