spela demo Omdömen
ladda ner källkoden Omdömen
TUTORIAL INDEX Omdömen
Det fanns två begränsningar med den rörliga block i den sista handledningen. Den första var att blocken skulle glida under spelaren. Detta kan lätt fastställas med en kodrad i kollisionsfunktionen MovingBlock Omdömen
override public function kolliderar (Kärna: FlxCore):. Void {//.. if (contactFromTop) {if (Core.hitCeiling (detta )) {Core.y = this.y - Core.height; Core.last.y = Core.y; Core.x + = this.x - this.last.x; }}}
Här flyttar spelaren horisontellt med samma belopp som blocket när spelaren har kolliderat med kvarter från ovan (dvs det står på den). Omdömen
Den andra begränsningen var att spelare skulle transporteras genom blocken i situationer där det borde ha kortas. För att fixa det upp vi behöver för att utföra kollisionsdetektering på statiska och rörliga block individuellt Omdömen
Först definierar vi en ny FlxArray i GameState klassen för att hålla de rörliga blocken Omdömen
skyddade Var movingBlocks..: FlxArray = new FlxArray ();
Alla instanser av MovingBlock klassen placeras sedan i den nya arrayen Omdömen
this.movingBlocks.add (this.add (ny MovingBlock (32, 64, 0, 0 , LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 3, BLOCK_DIMENSIONS * 2, BLOCK_DIMENSIONS * 2, TechTilesImage)));I uppdateringsfunktion som vi gör kollisioner på de rörliga blocken, och sedan de statiska. Observera att ordningen av samtalen till FlxG collideArray funktionen är viktiga: de rörliga blocken måste bearbetas innan de statiska block.
Vi kontrollerar sedan att se om spelaren är inbäddad i något av blocken. Om det är det har klämd, och vi kallar playerSquash funktionen Omdömen
public override uppdateringsfunktionen (): void {super.update ();. FlxG.collideArray (movingBlocks, spelare); FlxG.collideArray (levelBlocks, spelare); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (fiender, levelBlocks); FlxG.overlapArrays (playerBullets, fiender, bulletHitEnemy); FlxG.overlapArray (movingBlocks, spelare, playerSquash); FlxG.overlapArray (levelBlocks, spelare, playerSquash); }
I playerSquash funktionen vi helt enkelt döda spelaren. För en verklig spel skulle du förmodligen ta bort en spelare liv och starta om tillståndet i denna funktion Omdömen
private function playerSquash (Collide1: FlxCore, Collide2: FlxCore):. Void {player.kill ();}
Att göra en 3D-spel med Ogre - Öppna en Window
- Hur man spelar Runescape på Ipod Touch /iPhone /iTouch Utan Vnc, med hjälp av …
- Boolean logik för C
- Normal Argument listan i Php
- Wordpress Theme Generator - det enkla sättet att skapa en Wordpress Theme
- Lär känna Irrlicht 3D-motor - Att öppna en Window
- Objektorienterad Programming
- Manipulera Redigera Kontroll Text
- Ställa frågor Mysql Database
- Loop konstruktioner i C
- Php Villkorlig Statements
NET - C # - Hur man koda en återanv…