Navigation

Del 3 - Opbygning af Spilverdnen

Published on 20th February 2018

Under kølerhjelmen skaber this.add.image et nyt spilobjekt af typen Image, altså et billede, og føjer det til den nuværende Scenes displayliste. Det er den liste der holder styr på alle dine spilobjekter. Du kan positionere billedet hvorsomhelst uden at det er et problem for Phaser. Men hvis det er udenfor området 0x0 til 800x600, vil du selvfølgelig ikke kunne se billedet visuelt, fordi det er uden for skærmen. Det vil dog stadig eksistere inden for Scenen.

Scenen selv har ingen fast størrelse, men strækker sig uendeligt i alle retninger. Kamerasystemet kontrollerer dit kig ind i Scenen, og man kan bevæge og zoome med det aktive kamera som påkrævet. Man kan også skabe flere kameraer for at få flere forskellige perspektiver på Scenen. Det emne ligger dog uden for denne specifikke tutorials område, så lad det blot være sagt her at Phaser 3's kamerasystem er betydeligt bedre end i version 2. Man kan nu gøre ting med det, der førhen bogstaveligt talt var umulige.

Lad os for nuværende opbygge Scenen ved at tilføje et baggrundsbillede og nogle platforme. Her er den opdaterede create-funktion:

var platforms;

function create ()
{
    this.add.image(400, 300, 'sky');

    platforms = this.physics.add.staticGroup();

    platforms.create(400, 568, 'ground').setScale(2).refreshBody();

    platforms.create(600, 400, 'ground');
    platforms.create(50, 250, 'ground');
    platforms.create(750, 220, 'ground');
}

Et hurtigt blik på koden viser et kald til this.physics. Det betyder at vi bruger systemet Arcade Physics (fysiksystem til arkadespil), men før vi kan gøre det, er vi nødt til at fortælle Phaser at vores spil benytter det, ved at føje det til vores spilkonfigurationsobjekt. Så lad os opdatere dette til at inkludere understøttelse af fysik. Her er det reviderede konfigurationsobjekt:

var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    physics: {
        default: 'arcade',
        arcade: {
            gravity: { y: 300 },
            debug: false
        }
    },
    scene: {
        preload: preload,
        create: create,
        update: update
    }
};

Den nye tilføjelse er egenskaben physics. Med den stump kode på plads, som i part4.html fra tutorial ZIP-filen, vil du kunne afvikle og opleve en meget mere spil-agtig scene:

image

Vi har en baggrund og nogle platforme, men præcist hvordan virker de platforme?