Navigation

4.časť - Plošinky

Do funkcie create sme pridali kód, ktorý si zaslúži detailnejšie vysvetlenie. Začneme touto časťou:

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

Týmto spôsobom vytvárame novú skupinu statických telies a priraďujeme ju do premennej platforms. V arkádovej fyzike máme dva typy telies: dynamické a statické. Dynamické telesá sa pohybujú vďaka rýchlosti a zrýchleniu. Odrážajú sa a zrážajú sa s inými telesami intenzitou, ktorá závisí od ich hmotnosti a je ovplyvnená aj ďalšími parametrami.

Statické telesá majú len pozíciu a veľkosť. Nereagujú na gravitáciu, nedá sa im nastaviť rýchlosť a keď do nich niečo narazí, tak sa nepohnú. Sú presne také, ako hovorí ich názov. Sú vhodné na terén a plošinky, po ktorých necháme pobehovať nášho hráča.

Zostáva nám otázka, čo je to skupina? Ako už naznačuje samotný názov, skupina združuje podobné objekty, ktoré sa dajú ovládať ako jeden celok. Dokonce je možné testovať kolízie mezi skupinami a ostatnými hernými objektmi. Skupiny sú schopné vytvárať vlastné herné objekty pomocou fukcie ako je create. Fyzikálna skupina automaticky vytvára potomkov s aktivovanou fyzikou, čím nám ušetrí námahu.

Skupinu pre plošinky môžeme teraz využiť na vytvorenie jednotlivých plošiniek:

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

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

Ako sme už predtým videli, vytvoríme tak túto scénu:

image

Počas prednahrávania sme naimportovali obrázok 'ground'. Tento jednoduchý zelený obdĺžnik, s rozmermi 400 x 32 pixelov, nám poslúži ako základ pre plošinky:

image

Prvý riadok kódu umiestňuje obrázok terénu na pozíciu 400 x 568 (vzpomeň si, že obrázky sú umiestňované na pozíciu svojím stredom). Potrebujeme, aby se táto plošinka predstavujúca terén roztiahla na celú šírku našej hry, aby nemohol hráč vypadnúť z obrazovky. Dosiahneme to tak, že ju zväčšíme x2 pomocou funkcie setScale(2). Takže teraz má veľkosť 800 x 64, čo je presne to, čo presne potrebujeme. Volanie refreshBody() je nutné, pretože sme zmenili veľkost statického fyzikálneho telesa a musíme to oznámiť hernej fyzike.

Terén je zväčšený a na svojom mieste, takže je čas na dalšie plošinky:

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

Postup je úplne rovnaký ako predtým, len nepotrebujeme meniť veľkosť týchto plošiniek, pretože ju už majú správnu.

3 plošinky sú umiestnené na obrazovke tak, aby hráč mohol medzi nimi preskakovať.

Takže prišiel čas, aby sme pridali hráča.