SPEEL DE DEMO
Download de broncode
TUTORIAL INDEX
Er waren twee beperkingen met de bewegende blokken in de laatste tutorial. De eerste is dat de blokken onder de speler zou glijden. Dit kan eenvoudig worden opgelost met een regel code in de MovingBlock botsing functie
overschrijven publieke functie botsen (Core: flxCore). Void {//.. if (contactFromTop) {if (Core.hitCeiling (dit )) {Core.y = this.y - Core.height; Core.last.y = Core.y; Core.x + = this.x - this.last.x; }}}
Hier gaan we de speler horizontaal met hetzelfde bedrag als het blok als de speler heeft botste met het blok van boven (dat wil zeggen dat staat op het).
De tweede beperking is dat de speler zou worden getransporteerd door de blokken in situaties waar het had moeten worden gepropt. Vast te stellen dat tot we nodig hebben om collision detection uit te voeren op de statische en bewegende blokken individueel
Eerst definiëren we een nieuwe FlxArray in de gamestate klasse aan de bewegende blokken te houden
beschermd var movingBlocks..: FlxArray = new FlxArray ();
Alle exemplaren van de MovingBlock klasse worden vervolgens geplaatst in de nieuwe array
this.movingBlocks.add (this.add (nieuw MovingBlock (32, 64, 0, 0 , LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 3, BLOCK_DIMENSIONS * 2, BLOCK_DIMENSIONS * 2, TechTilesImage)));In de update-functie die we botsingen doen op de bewegende blokken, en dan de statische Ones. Merk op dat de volgorde van de oproepen naar de FlxG collideArray functie van belang zijn: de bewegende blokken moeten worden verwerkt voordat de statische blokken.
Vervolgens kijken we of de speler is ingebed in elk van de blokken. Als het het is geplet, en we de playerSquash functie noemen
openbare override functie update (): void {super.update ();. FlxG.collideArray (movingBlocks, speler); FlxG.collideArray (levelBlocks, speler); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (vijanden, levelBlocks); FlxG.overlapArrays (playerBullets, vijanden, bulletHitEnemy); FlxG.overlapArray (movingBlocks, speler, playerSquash); FlxG.overlapArray (levelBlocks, speler, playerSquash); }
In de playerSquash functie we gewoon de dood van de speler. Voor een eigenlijke spel zou je waarschijnlijk verwijderen van een spelers leven en de stand opnieuw in deze functie
privéaangelegenheid playerSquash (Collide1: flxCore, Collide2: flxCore):. Leegte {player.kill ();}
Het maken van een 3D-spel met Ogre - Het openen van een Window
- Html5 kan doen zoals Flash En Silverlight
- Data Manipulation in Mysql
- Voorbeelden van Shifters Codes
- Implementeren berekende waarden en sub Queries
- Anti-spam-crawler e-mail jQuery
- Perl Verwijzing naar een Hash
- Het maken van een 3D-spel met Ogre - Het openen van een Window
- Kijk satelliet - Kabel TV Online
- Bevragen Sybase Database
- Lossen Sql Corruptie veroorzaakt als gevolg van Transaction Log Files Verwijderi…