Navigation

Část 2 - Nahrání assetů

Jako první nahrajeme assety potřebné pro naši hru. To provedeme voláním metod objektu Phaser Loader uvnitř funkce preload, která patří objektu Scene. Phaser automaticky vyhledá tuto funkci při startu a nahraje vše, co je v ní určeno.

Dosud byla funkce preload prázdná. Upravte ji takto:

function preload ()
{
    this.load.image('sky', 'assets/sky.png');
    this.load.image('ground', 'assets/platform.png');
    this.load.image('star', 'assets/star.png');
    this.load.image('bomb', 'assets/bomb.png');
    this.load.spritesheet('dude', 
        'assets/dude.png',
        { frameWidth: 32, frameHeight: 48 }
    );
}

Toto nahraje 5 assetů: 4 obrázky a sprite sheet (sprite sheet je obrázek obsahující více jednotlivých snímků se stejnými rozměry rovnoměrně rozmístěných do pomyslné mřížky). Všimněte si prvního parametru ('sky', 'bomb') - přesto, že někomu to může být zřejmé, chtěl bych zdůraznit, že se jedná o klíč k assetu. Tento klíč představuje přístup k nahranému assetu a budete ho používat při vytváření herních objektů (Game Objects). Jako klíč je možné použít jakýkoli platný JavaScriptový řetězec.

Zobrazení obrázku

Abychom zobrazili jeden z obrázků, které jsme nahráli, přidejte následující kód do vnitřku funkce create:

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

Naleznete to v souboru part3.html. Pokud ho nahrajete do prohlížeče, měli byste vidět modrou oblohou na pozadí přes celou herní obrazovku:

image

Hodnoty 400 a 300 jsou x a y souřadnice obrázku. Proč zrovna 400 a 300? To je proto, že všechny herní objekty jsou ve výchozím stavu vycentrovány. Obrázek s pozadím má rozměry 800 x 600 pixelů, takže pokud bychom ho zobrazili vycentrovaný na pozici 0 x 0, viděli bychom jenom jeho pravý dolní roh. Pokud ho zobrazíme na pozici 400 x 300, uvidíme ho celý.

Tip: Ke změně můžete použít setOrigin. Například, kód: this.add.image(0, 0, 'sky').setOrigin(0, 0) nastaví vykreslovací pozici obrázku na jeho levý horní roh. Ve Phaseru 2 se toho dosahovalo použitím vlastnosti anchor, ale ve Phaseru 3 se místo toho používají vlastnosti originX a originY.

Pořadí, ve kterém jsou herní objekty zobrazené odpovídá pořadí, ve kterém jste je vytvořili. Takže pokud chcete umístit sprite s hvězdou přes pozadí, musíte se ujistit, že byl přidán až jako druhý po obrázku s oblohou:

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

Pokud umístíte obrázek star jako první, bude zakrytý obrázkem oblohy.