Koda spel i Ruby

Lektion 1: Öppna ett fönster

Att skriva datorspel kan vara knepigt, även om själva spelet inte är så avancerat. Vi ska göra det lite enklare för oss genom att använda Gosu. Gosu är ett "bibliotek" med färdiga programsnuttar som man kan använda i sitt eget spel. Med Gosu blir det till exempel lättare att få saker som rymdskepp och asteroider att röra sig på skärmen.

Starta Kids Ruby och skriv följande på första raden i editorn (rutan till vänster):


require 'gosu'
      

Denna korta rad ger oss tillgång till Gosu-biblioteket.

Sedan är det dags att skapa den första klassen i programmet. En klass är ett slags beskrivning som datorn följer när den skapar något. I vårt fall vill vi skapa ett spelfönster, en ruta på datorskärmen där man ser vad som händer i spelet.

Nu gäller det alltså att beskriva för datorn hur vårt spelfönster ska se ut och hur det ska fungera. Vi börjar med att skriva så här:


class Window < Gosu::Window
  def initialize
    super(640, 480, false)
  end
  
  def update
  end
  
  def draw
  end
end
      

Den första raden ovan talar om att vår klass ska heta Window, som är det engelska ordet för "fönster", och att den ska fungera som Gosu-klassen med samma namn. Därefter följer tre stycken metoder. Metoderna är de stycken som börjar med def och slutar med end.

I den första metoden, som heter initialize, berättar vi för datorn att vårt spelfönster ska vara 640 pixlar brett och 480 pixlar högt. En pixel är en liten, liten punkt på bildskärmen. Ordet false, som betyder "falskt", gör så att fönstret inte fyller ut hela skärmen.

De två andra metoderna, som heter update och draw, gör än så länge ingenting alls. Klassen avslutas med ytterligare ett end (som betyder "slut").

Som du ser så inleder jag rader som ligger inuti klasser och metoder med ett par mellanslag. Man brukar göra så för att programmen ska bli lättare att läsa, men om du vill kan du strunta i det. Däremot är det jättenoga med små och stora bokstäver, och att tecken som "<" och ":" hamnar på rätt ställen!

Okej. Nu har vi alltså beskrivit spelfönstret – nu ska vi bara fixa så att man kan se det. Det gör vi med den här koden:


window = Window.new
window.show
      

Det är allt som krävs! Den första raden får datorn att skapa ett nytt spelfönster. När den skapar fönstret följer den beskrivningen i klassen Window. Sedan, på den andra raden, får vi fönstret att framträda på skärmen med metoden show.

Här är det program vi har skrivit så här långt, i sin helhet:


require 'gosu'

class Window < Gosu::Window
  def initialize
    super(640, 480, false)
  end
  
  def update
  end
  
  def draw
  end
end

window = Window.new
window.show
      

Vi har nu kommit en bra bit på väg. För att inte bli av med den kod vi har skrivit ska vi ta och spara programmet. I Kids Ruby klickar du på "Save" och ger programmet ett lämpligt namn, till exempel "spel.rb" (eftersom vi kodar i Ruby ska namnet sluta med ".rb"). Välj sedan i vilken mapp/katalog filen ska sparas – t ex "Mina dokument" – och klicka på "Spara".

Äntligen har det blivit dags att provköra programmet! Klicka på knappen "Run". Efter en stund ska ett rektangulärt fönster visas på skärmen.

Funkar det inte? Då har du nog råkat skriva fel någonstans. Gå tillbaka till ditt program, och jämför med koden här på sidan. När du har hittat felet är det bara att spara och provköra igen.

Har spelfönstret öppnats nu? Bra jobbat! Men, handen på hjärtat, hur kul är det med ett tomt spelfönster? I nästa lektion ska vi börja fylla det med innehåll!