Difference between revisions of "Tutorial:Callback Functions (Svenska)"
m |
(→love.keyreleased: först översättning) |
||
Line 94: | Line 94: | ||
end | end | ||
</source> | </source> | ||
− | + | När en tangent släpps upp anropas den här funktionen. Argumenten ''key'' och ''unicode'' står beskrivna ovan, i <code>love.keypressed</code>. De två funktionerna är helt självständiga och du kan välja att implementera ingen, en eller bägge i ditt spel. | |
− | |||
− | |||
==[[love.focus]]== | ==[[love.focus]]== |
Revision as of 14:33, 7 June 2011
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
Callbackfunktionerna i LÖVE används för systematiskt dela upp ett LÖVE-spel i logiska beståndsdelar. Varje callback är valfri, dvs. du måste inte ha med alla i varje spel. Sannolikt behöver du dock ha med de allra flesta i ett lite större spel, så det är bra om du känner till dem alla.
Contents
love.load
function love.load()
image = love.graphics.newImage("cake.jpg")
local f = love.graphics.newFont(12)
love.graphics.setFont(f)
love.graphics.setColor(0,0,0,255)
love.graphics.setBackgroundColor(255,255,255)
end
love.load
-funktionen anropas en enda gång, när spelet startar. Det är i denna funktion det är tänkt att du ska läsa in alla resurser spelet behöver använda sig av, som ljud och bilder. Det är möjligt att ladda in resurser även på andra platser i ditt spel, men om du väljer att göra det här vet du att de endast läses in precis en gång och därmed sparar du på datorns resurser.
love.update
function love.update(dt)
if love.keyboard.isDown("up") then
num = num + 100 * dt -- detta betyder att num ökas med 100 varje sekund
end
end
Den här funktionen anropas kontinuerligt, dvs. hela tiden när ditt spel är igång. Tanken är att du i den ska skriva ned den mesta av spellogiken eller matematiken som ditt spel består av. 'dt' är en förkortning av "deltatid" och anger antalet sekunder sedan love.update
anropades förra gången. Normalt sett är dt ett litet värd i stil med 0.025714.
love.draw
function love.draw()
love.graphics.draw(image, imgx, imgy)
love.graphics.print("Dra och släpp tårtan med musen eller använd piltangenterna", 10, 10)
end
I love.draw
sker all rendering (utritning till skärmen). Anrop till love.graphics.draw
utanför denna funktion är möjlig, men det ger ingen som helst effekt. Så håll ritkommandona här, eller i funktioner som anropas ifrån love.draw
. Även denna funktion anropas kontinuerligt, så var medveten om att inställningar som nuvarande färg eller typsnitt inte nollställs mellan anrop. De blir istället "kvar" mellan anrop. Till exempel:
function love.load()
love.graphics.setColor(0,0,0)
end
function love.draw()
love.graphics.print("Den här texten är röd pga. raden nedan", 100, 100)
love.graphics.setColor(255,0,0)
love.graphics.print("Denna text är också röd", 100, 200)
end
love.mousepressed
function love.mousepressed(x, y, button)
if button == 'l' then
imgx = x -- flytta bilden till muspositionen
imgy = y
end
end
Den här funktionen anropas när någon musknapp trycks ned. Både koordinater och musknapp går att läsa av genom variablerna x, y och button. Musknappen är en värdena som är definierade i muskonstanter. Den här funktionen passar bra tillsammans med love.mousereleased
.
love.mousereleased
function love.mousereleased(x, y, button)
if button == 'l' then
fireSlingshot(x,y) -- anrop till en annan funktion när musknappen släpps upp
end
end
Anropas så fort en musknapp släpps upp. Även denna får x, y och button. Funkar bra i kombination med love.mousepressed
, men är tekniskt sätt en helt separat funktion. Dvs. i ett spel kan du ha med ingen, den ena eller båda dessa funktioner.
love.keypressed
function love.keypressed(key, unicode)
if key == 'b' then
text = "Tangenten 'B' trycktes ned."
elseif key == 'a' then
a_down = true
end
end
Den här funktionen anropas när en tangent trycks ned. Indata är dels tangentkonstanten key, som motsvarar en specifik knapp på tangentbordet, oavsett vilket språk användarens operativsystem är inställt på. unicode motsvarar istället den internationella, översatta textsträngen som användaren matat in via tangentbordet, t.ex. å, ä eller ö. Använd key i ett plattformsspel med enkla knappar för styrning (tänk Mario Bros), och unicode vid t.ex. textinmatning i ett textspel (tänk Zork, Leisure Suit Larry).
love.keyreleased
function love.keyreleased(key, unicode)
if key == 'b' then
text = "Tangenten 'B' släpptes upp."
elseif key == 'a' then
a_down = false
end
end
När en tangent släpps upp anropas den här funktionen. Argumenten key och unicode står beskrivna ovan, i love.keypressed
. De två funktionerna är helt självständiga och du kan välja att implementera ingen, en eller bägge i ditt spel.
love.focus
function love.focus(f)
if not f then
print("LOST FOCUS")
else
print("GAINED FOCUS")
end
end
// TODO: översätt till svenska! This function is called whenever the user clicks off and on the LOVE window. For instance, if he is playing a windowed game and a user clicks on his internet browser, the game could be notified and automatically pause the game.
love.quit
function love.quit()
print("Thanks for playing! Come back soon!")
end
// TODO: översätt till svenska! This function is called whenever the user clicks the windows close button (often an X). For instance, if the user decides he is done playing, he could click the close button. Then, before it closes, the game can save its state.
Those are the callback functions and their basic usage.
Other languages
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