Ich versuche, Tastatureingabe zu verwenden, um eine Beschriftung um den Bildschirm zu übersetzen. Momentan funktionieren nur noch down und left. Mein Code ist unten.Love2d bewegt ein Objekt auf dem Bildschirm
debug = true
down = 0
up = 0
left = 0
right = 0
text = 'non'
x = 100
y = 100
dx = 0
dy = 0
function love.load(arg)
end
function love.update(dt)
if love.keyboard.isDown('escape') then
love.event.push('quit')
end
if up == 1 then
dy = -1
end
if up == 0 then
dy = 0
end
if down == 1 then
dy = 1
end
if down == 0 then
dy = 0
end
if right == 1 then
dx = 1
end
if right == 0 then
dx = 0
end
if left == 1 then
dx = -1
end
if left == 0 then
dx = 0
end
end
function love.keypressed(key)
if key == 'up' or key == 'w' then
text = 'up'
up = 1
end
if key == 'down' or key == 's' then
text = 'down'
down = 1
end
if key == 'right' or key == 'd' then
text = 'right'
right = 1
end
if key == 'left' or key == 'a' then
text = 'left'
left = 1
end
end
function love.keyreleased(key)
text = 'non'
if key == 'up' or key == 'w' then
up = 0
end
if key == 'down' or key == 's' then
down = 0
end
if key == 'right' or key == 'd' then
right = 0
end
if key == 'left' or key == 'a' then
left = 0
end
end
function love.draw(dt)
x = x + dx
y = y + dy
love.graphics.print(text, x, y)
end
Experimentation hat, dass die in den love.update (dt) Abschnitt Effekte Reihenfolge der if-Anweisungen gezeigt, die Richtungen arbeiten, aber ich kann nicht zur gleichen Zeit alle vier zu arbeiten.
Sie überprüfen jeden Wert für beide Möglichkeiten und legen dann einen gemeinsamen Wert für jeden Wert fest. Folgen Sie der Logik in 'love.update' in Ihrem Kopf und verfolgen Sie' dy' und 'dx' für einen beliebigen Tastendruck. (Denken Sie daran, dass Sie * nur einen Wert * ändern können, aber alle Variablen Werte haben.) –