Очень новичок в разработке игр и Lua в целом. Я делаю платформер и хочу иметь возможность перезапускать игру после столкновения персонажа с определенным объектом и отображать заголовок перед этим. Я также хочу сбросить позицию персонажа обратно на 0,0, как только это произойдет, но я не знаю, как это сделать.
Я создал глобальную переменную WIN, для которой установлено значение true, если персонаж сталкивается с объектом, что работает, но затем, перейдя в мою функцию love.draw (), у меня есть следующее:
function love.draw()
-- begin virtual resolution drawing
push:apply('start')
-- clear screen using Mario background blue
love.graphics.clear(108/255, 140/255, 255/255, 255/255)
-- renders our map object onto the screen
love.graphics.translate(math.floor(-map.camX + 0.5), math.floor(-map.camY + 0.5))
map:render()
if WIN == true then
love.graphics.printf('NEXT LEVEL', 0, 30, VIRTUAL_WIDTH, 'center')
love.graphics.printf('Continue to Next Level', 0, 45, VIRTUAL_WIDTH, 'center')
love.load()
end
-- end virtual resolution
push:apply('end')
end Когда я действительно сталкиваюсь с объектом, я получаю следующую ошибку:
Error
push.lua:48: love.window.setMode cannot be called while a Canvas is active in love.graphics.
Traceback
[C]: in function 'windowUpdateMode'
push.lua:48: in function 'setupScreen'
main.lua:43: in function 'load'
main.lua:116: in function 'draw'
[C]: in function 'xpcall'
Строки с ошибками находятся в моей функции love.load (), которая выглядит следующим образом:
function love.load()
-- sets up a different, better-looking retro font as our default
love.graphics.setFont(love.graphics.newFont('fonts/font.ttf', 8))
-- sets up virtual screen resolution for an authentic retro feel
push:setupScreen(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, WINDOW_WIDTH, WINDOW_HEIGHT, {
fullscreen = false,
resizable = true
})
love.window.setTitle('Super Mario 50')
love.keyboard.keysPressed = {}
love.keyboard.keysReleased = {}
end
Я предполагаю, что проблема в том, что я не могу снова настроить экран после того, как уже сделал это один раз, но я не знаю, как это исправить и начать все заново. Любая помощь приветствуется!