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).

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