Vi har lige f├©jet en masse kode til vores create-funktion. Det fortjener en mere detaljeret forklaring. F├©rst denne del:

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

Her skabes en ny Static Physics Group (en gruppe af statiske fysikobjekter), som gemmes i den lokale variabel platforms. I Arcade Physics, fysisksystemet til arkadespil, findes to typer af fysiske legemer: Dynamiske og statiske. Et dynamisk legeme er ├®t, der kan bev├ªge sig omkring som f├©lge af fysiske kr├ªfters p├Ñvirkning og fx kan have hastighed og accelleration. Det kan ├ªndre retning i kollision med andre objekter, og kollisionerne p├Ñvirkes af legemernes masse og ├©vrige egenskaber.

Stik modsat af dette har et statisk legeme blot en position og en st├©rrelse. Det p├Ñvirkes ikke af tyngdekraft, man kan ikke s├ªtte en hastighed for det, og n├Ñr noget st├©der ind i det, bev├ªger det sig aldrig. Statisk af navn, statisk af v├ªsen. Og perfekt til jorden og de platforme, som vi vil lade spilleren l├©be rundt p├Ñ.

Men hvad er en gruppe? Som navnet antyder er grupper en måde at gruppere ensartede objekter og styre dem alle som en samlet enhed. Man kan også checke for kollisioner mellem grupper og andre spilobjekter. Grupper kan skabe deres egne spilobjekter via smarte hjælpefunktioner som create. En gruppe af fysikobjekter vil automatisk skabe objekter med fysiske egenskaber, hvilket sparer os for noget af benarbejdet i den sammenhæng.

Med vores platforms-gruppe oprettet, kan vi nu bruge den til at skabe platformene:

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

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

Som vi tidligere har set, skaber det denne scene:

image

I vores preload-funktion indl├ªste vi et billede der hed 'ground'. Det er et simpelt gr├©nt rektangel p├Ñ 400 x 32 pixels som opfylder vores behov for nogle enkle platforme:

image

Den f├©rste linje kode ovenfor tilf├©jer et nyt ┬┤ground┬┤-billede p├Ñ positionen 400 x 568 (husk at billeder placeres ud fra deres centerpunkt) - problemet er bare, at denne platform b├©r str├ªkke sig i hele spillets bredde, ellers falder spilleren bare ud over dens kanter. For at opn├Ñ dette forst├©rrer vi den x2 med funktionen setScale(2). Nu er den 800 x 64 i st├©rrelsen, hvilket er perfekt til vores form├Ñl. Kaldet til refreshBody() er n├©dvendigt fordi vi har skaleret et statisk fysiklegeme og er n├©dt til at fort├ªlle fysikobjektet om de ├ªndringer, vi har foretaget.

Jorden er skaleret og korrekt placeret, s├Ñ det er tid til at tilf├©je de andre platforme:

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

Fremgangsm├Ñden er pr├ªcis som f├©r, blot beh├©ver vi ikke forst├©rre disse platforme, da de allerede har den rette st├©rrelse.

Tre platforme er nu placeret rundt omkring på skærmen med den rette afstand imellem sig til at spilleren kan hoppe op på dem.

S├Ñ lad os tilf├©je vores spiller.