Tutorial:Hamster Ball (Deutsch)

Screenshot vom Hamsterball.
Hamsterballbild (Anmerkung: Das Tutorial nimmt an, dass man es hamster.png nennt.)

Dieses Spiel ist ein sehr einfaches Beispiel, wie man Resourcen (in diesem Fall ein einfaches Bild) zu der Engine hinzu fügt und wie man sie mit den Pfeiltasten herum bewegt. Hier ist der ganze Quellcode, falls du ihn nicht heruntergeladen hast:

-- Tutorial 1: Hamsterball
-- Füge dem Spiel ein Bild hinzu und bewege es mit den Pfeiltasten.
-- kompatibel mit löve 0.6.0 und höher
 
function love.load()
   hamster = love.graphics.newImage("hamster.png")
   x = 50
   y = 50
   speed = 300
end
 
function love.update(dt)
   if love.keyboard.isDown("right") then
      x = x + (speed * dt)
   end
   if love.keyboard.isDown("left") then
      x = x - (speed * dt)
   end
 
   if love.keyboard.isDown("down") then
      y = y + (speed * dt)
   end
   if love.keyboard.isDown("up") then
      y = y - (speed * dt)
   end
end
 
function love.draw()
   love.graphics.draw(hamster, x, y)
end

Es ist nicht des komplizierteste Program der Welt, aber irgendwo müssen wir anfangen. Beachte, dass alles im Code nach den -- Buchstaben ein Kommentar ist und es wird von Program ignoriert.

-- Du kannst hier schreiben was du willst!

So, als nächstes muss man wissen, dass man eine Funktion namens load benötigt um alles zum laufen zu bringen. Hier wird das Spiel eingeleitet und hier beginnt alles. Obwohl sie grundsätzlich nicht benötigt werden ist es besser, auch love.update() und love.draw() einzubeziehen. Die Bedeutung der verschiedenen Funktionen werden kurz erklärt.

-- Dies ist ein leeres Program
function love.load()
end
 
function love.update(dt)
end
 
function love.draw()
end

So, lasst uns festhalten, was der genaue Quellcode des Spiels tut.

Die load-Funktion sieht wie folgt aus:

function love.load()
   hamster = love.graphics.newImage("hamster.png")
   x = 50
   y = 50
   speed = 300
end

Was wir hier tun, ist die Datei hamster.png zu unserem Spiel hinzu fügen. Wir weisen das Bild der Variable namens hamster zu. Auch deklarieren wir drei Variablen: x, y und speed. Sie werden alle ein Teil zum Programm beitragen.

Die update-Funktion sieht so aus:

function love.update(dt)
   if love.keyboard.isDown("right") then
      x = x + (speed * dt)
   end
   if love.keyboard.isDown("left") then
      x = x - (speed * dt)
   end
 
   if love.keyboard.isDown("down") then
      y = y + (speed * dt)
   end
   if love.keyboard.isDown("up") then
      y = y - (speed * dt)
   end
end

Zuerst wird man sehen, dass die Funktion einen Parameter namens dt akzeptiert (eine Abkürzung für delta-time) welcher die Menge an Zeit repräsentiert, die seit dem letzten Aufruf der Funktion vergangen ist. Es ist in sekunden, aber dank der Geschwindigkeit heutiger Prozessoren ist der Wart normalerweise kleiner als 1 (Werte wie 0.01 sind häufig). Wir werden diesen Wert benutzen um den Hamsterball in der gleichen Geschwindinkeit zu bewegen, unabhängig davon, wie schnell der Computer des Spielers ist.

In der Funktion prüfen wir, ob die Tasten rechts, links, oben oder unten gedrückt sind, indem wir die love.keyboard.isDown(key) Funktion mit ihren angemessenen Parametern (eine Liste aller Tasten kann hier gefunden werden) aufrufen. Wenn eine der rechten Tasten gedrückt wird, wird der x oder y Wert erhöht um den angemessenen Betrag (in diesem Fall um speed mal dt was bedeutet, der Ball bewegt sich mit 300 Pixeln pro Sekunde; versuche den speed Wert in der load-Funktion zu verändern um zu sehen, was geschieht).

Die draw-Funktion sieht wie folgt aus:

function love.draw()
   love.graphics.draw(hamster, x, y)
end

Es geschieht nicht viel, aber dies ist, wo die Magie geschieht. Das Bild, das die hamster Variable enthält wird gezeichnet bei den x und y Koordinate. Das ist es grundsätzlich, für das erste Spiel. Versuche mit den Variablen in der love.load Funktion zu spielen, um zu sehen, welche Effekte sie haben.

Vergiss nicht, dass .love-Dateien in standard Archivierungssoftware, wie WinZip or 7zip geöffnet werden können. Sie sind eigentlich nur umbenannte .zip-Dateien!



Andere Sprachen