Difference between revisions of "Tutorial:Callback Functions (Svenska)"

(utkast till översättning (direktöversatt från engelska sidan))
 
m (bättre gruppering av rubriker)
Line 1: Line 1:
 
[[:Category:Callbacks|Callbackfunktionerna]] i LÖVE används för dela upp ett LÖVE-spel systematiskt i olika logiska beståndsdelar. Varje callback är valfri, dvs. du måste inte ha med alla i varje spel. Men sannolikt behöver du ha med de allra flesta i ett lite större spel, så det är bra om du känner till vilka som finns tillgängliga.  
 
[[:Category:Callbacks|Callbackfunktionerna]] i LÖVE används för dela upp ett LÖVE-spel systematiskt i olika logiska beståndsdelar. Varje callback är valfri, dvs. du måste inte ha med alla i varje spel. Men sannolikt behöver du ha med de allra flesta i ett lite större spel, så det är bra om du känner till vilka som finns tillgängliga.  
 +
  
 
==[[love.load]]==
 
==[[love.load]]==
Line 12: Line 13:
 
</source>
 
</source>
 
<code>love.load</code>-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.
 
<code>love.load</code>-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]]==
 
==[[love.update]]==
Line 22: Line 24:
 
</source>
 
</source>
 
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 "[[love.timer.getDelta|deltatid]]" och anger antalet sekunder sedan <code>love.update</code> anropades förra gången. Normalt sett är dt ett litet värd i stil med 0.025714.  
 
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 "[[love.timer.getDelta|deltatid]]" och anger antalet sekunder sedan <code>love.update</code> anropades förra gången. Normalt sett är dt ett litet värd i stil med 0.025714.  
 +
  
 
==[[love.draw]]==
 
==[[love.draw]]==
Line 42: Line 45:
 
end
 
end
 
</source>
 
</source>
 +
  
 
==[[love.mousepressed]]==
 
==[[love.mousepressed]]==
Line 53: Line 57:
 
</source>
 
</source>
 
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 [[MouseConstant|muskonstanter]]. Den här funktionen passar bra tillsammans med <code>[[love.mousereleased]]</code>.  
 
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 [[MouseConstant|muskonstanter]]. Den här funktionen passar bra tillsammans med <code>[[love.mousereleased]]</code>.  
 +
  
 
==[[love.mousereleased]]==
 
==[[love.mousereleased]]==
Line 90: Line 95:
 
// TODO: översätt till svenska!
 
// TODO: översätt till svenska!
 
This function is called whenever a keyboard key is released and receives the key that was released. You can have this function together with <code>[[love.keypressed]]</code> or separate, they aren't connected in any way.  
 
This function is called whenever a keyboard key is released and receives the key that was released. You can have this function together with <code>[[love.keypressed]]</code> or separate, they aren't connected in any way.  
 +
  
 
==[[love.focus]]==
 
==[[love.focus]]==
Line 103: Line 109:
 
// TODO: översätt till svenska!
 
// 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.
 
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]]==
 
==[[love.quit]]==

Revision as of 22:02, 6 June 2011

Callbackfunktionerna i LÖVE används för dela upp ett LÖVE-spel systematiskt i olika logiska beståndsdelar. Varje callback är valfri, dvs. du måste inte ha med alla i varje spel. Men sannolikt behöver du ha med de allra flesta i ett lite större spel, så det är bra om du känner till vilka som finns tillgängliga.


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. Även denna funktion anropas kontinuerlig, så var medveten om att inställningar, som t.ex. nuvarande färg/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 = "The B key was pressed."
   elseif key == 'a' then
      a_down = true
   end
end

// TODO: översätt till svenska! This function is called whenever a keyboard key is pressed and receives the key that was pressed. The key can be any of the constants. This functions goes very well along with love.keyreleased.

love.keyreleased

function love.keyreleased(key, unicode)
   if key == 'b' then
      text = "The B key was released."
   elseif key == 'a' then
      a_down = false
   end
end

// TODO: översätt till svenska! This function is called whenever a keyboard key is released and receives the key that was released. You can have this function together with love.keypressed or separate, they aren't connected in any way.


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