image

Velkommen til vores første tutorial om at lave et spil med Phaser 3. Her vil vi lære hvordan man laver et lille spil med en figur, der kan løbe og hoppe mellem platforme, samle stjerner op og undgå forhindringer. Undervejs i forløbet vil vi forklare nogle af de centrale egenskaber ved frameworket.

Hvad er Phaser?

Phaser er en HTML5-spilprogrammeringsplatform eller et framework, som skal gøre det nemt og virkelig hurtigt for udviklere at lave robuste HTML5-spil til alle typer af browsere. Det er bygget specifikt til at gøre brug af fordelene ved moderne browsere, både på computer og mobil. Det eneste krav til browserne er, at de understøtter canvas elementet.

Nødvendige forberedelser

Download denne ZIP-fil som indeholder koden og grafikken til hvert trin i denne tutorial.

Du er nødt til at kende lidt til JavaScript, bare sådan helt grundlæggende.

Sørg også for at gennemgå guiden Kom i gang med Phaser 3. Den forklarer hvordan man downloader frameworket og opretter et lokalt udviklingsmiljø, og den giver et glimt af strukturen og de centrale funktioner i et Phaser-projekt.

Hvis du har gennemgået guiden Kom i gang med Phaser, vil du have downloadet Phaser og fået sat alting op så du er klar til at programmere. Download filerne til denne tutorial og pak dem ud i roden af din lokale webserver.

Åbn siden part1.html i din foretrukne teksteditor og lad os se nærmere på koden. Efter en smule standard HTML, der indlæser Phaser, ser kode-strukturen således ud:

var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    scene: {
        preload: preload,
        create: create,
        update: update
    }
};

var game = new Phaser.Game(config);

function preload ()
{
}

function create ()
{
}

function update ()
{
}

Objektet config lader dig konfigurere dit Phaser-spil. Der findes masser af valgmuligheder for dette objekt, og efterhånden som du lærer mere om Phaser vil du støde på flere af dem. Men i denne tutorial indstiller vi blot en renderingsmaskine, spillets dimensioner og en standard Scene.

En instans af Phaser.Game klassen gemmes i den lokale variabel kaldet game, og konfigurationsobjektet medsendes som parameter. Det starter den process, der vækker Phaser til live.

I Phaser 2 var game-objektet knudepunkt for næsten alle interne systemer og blev ofte tilgået fra en global variabel. I Phaser 3 er dette ikke længerer tilfældet, og det er ikke længere nyttigt at gemme game-objektet i en global variabel.

Egenskaben type kan sættes til enten Phaser.CANVAS, Phaser.WEBGL eller Phaser.AUTO. Det er den renderingskontekst, som du ønsker at dit spil skal benytte. Den anbefalede værdi er Phaser.AUTO som automatisk prøver at benytte WEBGL, men som falder tilbage på Canvas hvis browseren eller devicet ikke understøtter WEBGL. Det canvas-element som Phaser skaber, bliver blot føjet til dokumentet dér hvor scriptet bliver kaldt, men man kan også specificere navnet på et omgivende html-element i konfigurationsobjektet, hvis man ønsker det.

Egenskaberne width og height bestemmer størrelsen på det canvas-element som Phaser skaber. I dette tilfælde 800 x 600 pixels. Din spilverden kan have enhver tænkelig størrelse, men dette er den opløsning, som dit spil vil blive vist i.

Egenskaben scene i konfigurationsobjektet gennemgår vi i flere detaljer senere i denne tutorial.