love.update (Polski)
Funkcja zwrotna (callback) używana do aktualizowania stanu gry (między ramkami).
Contents
Funkcja
Sygnatura
love.update( dt )
Argumenty
number dt
- Czas w sekundach od ostatniego wywołania funkcji update
Wartość zwracana
Brak.
Przykłady
Uruchamia funkcję think
z tabeli/modułu npc
raz na sekundę.
dtotal = 0 -- ta zmienna śledzi ile czasu upłynęło
function love.update(dt)
dtotal = dtotal + dt -- dodajemy czas jaki upłynął, prawdopodobnie mała liczba rzędu 0.01
-- w sumie minęła sekunda
if dtotal >= 1 then
dtotal = dtotal - 1 -- zmniejsz czas o 1, ale nie odrzucaj reszty..
-- co jeśli nasza klatka trwa 2/3 sekundy?
npc.think()
end
end
Uaktualnia zmienną var
w stałym tępie (+/- 3 na sekundę w tym przykładzie).
var = 10 -- ustalont wartość początkowa
tempo = 3 -- tempo w jakim dokonywana jest zmiana var
function love.update(dt)
if love.keyboard.isDown("down") then -- zmniejsz wartość
var = var - (dt * rate)
end
if love.keyboard.isDown("up") then -- zwiększ wartość
var = var + (dt * rate)
end
end
Żeby wyjaśnić powyższy przykład, załóżmy, że nasza gra wykonuje się w tempie 4 klatek na sekundę, natomiast dt
w kolejnych wywołaniach funkcji update, ma kolejno wartości 0.21, 0.31, 0.29, 0.20.
Tak więc, jeśli trzymany był klawisz strzałki w górę, zmienna var w kolejnych wywołaniach będzie miała wartości:
var = var + ( 0.21 *3) = var + 0.63 = 10.63
var = var + ( 0.31 *3) = var + 0.93 = 11.56
var = var + ( 0.29 *3) = var + 0.87 = 12.43
var = var + ( 0.2 *3) = var + 0.6 = 13.03
Oczywiście w rzeczywistości gra będzie się wykonywać dużo szybciej, a wartości dt, będą dużo mniejsze.
Zobacz również
Inne języki
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info