Difference between revisions of "love.update (Polski)"
(Created page with "Funkcja zwrotna (callback) używana do aktualizowania stanu gry (między ramkami). == Funkcja == === Sygnatura === <source lang="lua"> love.update( dt ) </source> === Argumenty =...") |
|||
Line 40: | Line 40: | ||
Żeby wyjaśnić powyższy przykład, załóżmy, że nasza gra wykonuje się w tempie 4 klatek na sekundę, natomiast <code>dt</code> w kolejnych wywołaniach funkcji update, ma kolejno wartości 0.21, 0.31, 0.29, 0.20. | Żeby wyjaśnić powyższy przykład, załóżmy, że nasza gra wykonuje się w tempie 4 klatek na sekundę, natomiast <code>dt</code> 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: | 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: | ||
− | <source> | + | <source lang="text"> |
var = var + ( 0.21 *3) = var + 0.63 = 10.63 | var = var + ( 0.21 *3) = var + 0.63 = 10.63 | ||
var = var + ( 0.31 *3) = var + 0.93 = 11.56 | var = var + ( 0.31 *3) = var + 0.93 = 11.56 |
Revision as of 14:23, 9 December 2013
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