skyddat var startingX: int;. skyddade var maxHorizontalMovement: int; skyddade Var gibs: FlxEmitter;startingX variabla lagrar utgångsläget av fienden. Eftersom alla fiender startar till vänster i ett block, och vi vet hur stort ett block är, kan vi använda börjar med fiender aktuell position för att avgöra när det ska flytta tillbaka till rätten att undvika att falla över kanten.
Omdömen < p> maxHorizontalMovement variabeln är bredden på det underliggande blocket. Detta i kombination med startingX variabeln, stannar fiender flyttar utanför kanten av blocket. Omdömen
gibs variabel kommer att hålla en FlxEmitter, som är som en partikel-system, som kommer att visa en explosion av gibs när fienden förstörs Omdömen
public function Enemy (X: int, Y: int, maxHorizontalMovement: int). {super (EnemyImage, X, Y, true); this.y - = this.height; this.startingX = X; this.maxHorizontalMovement = maxHorizontalMovement - this.width; this.velocity.x = ENEMY_SPEED; this.health = ENEMY_HEALTH; this.gibs = FlxG.state.add (ny FlxEmitter (0,0,0,0, null, -1,5, -150.150, -200, 0, -720,720,400,0, EnemyGibsImage, 20, true)) som FlxEmitter; addAnimation ("anim", [0, 1], 12); this.play ("anim"); }
Allt detta nummer är rakt framåt. Vi har helt enkelt installationsprogrammet de underliggande FlxSprite variabler tillsammans med dem vi specificerade oss, och sedan ställa in fiendens animation. . Vi skapar också en ny FlxEmitter, som kommer att visa duschen av gibs när fienden dör Omdömen
public override uppdateringsfunktionen (): void {super.update (); if (this.x - this.startingX> = maxHorizontalMovement) {this.x = this.startingX + maxHorizontalMovement; this.velocity.x = -ENEMY_SPEED; .} Else if (this.x - this.startingX
I uppdateringsfunktionen ändrar vi hastigheten hos fienden om det har rört sig över kanten av den underliggande blocket Omdömen
public override funktion hitWall (Kontakt: FlxCore = null): Boolean {this.velocity.x = -this.velocity.x, return true;}hitWall funktionen kommer att kallas om fienden har drabbat en vägg Eftersom vi vet att vägen är klar över.
vänster på den underliggande blocket, innebär detta att fienden slog ett block som det flyttade rätt i detta fall har vi helt enkelt ställa in hastigheten för att flytta fienden tillbaka till vänster Omdömen
public override funktion kill ():.. void {super.kill (); this.gibs.x = this.x + (this.width >> 1); this.gibs.y = this.y + (this.height >>Skapa ett Flash plattformsspel med flixel och Flex - Ljud och Music
- Mysql Handledning Och kommandon Del 1
- Index För Database Tables
- Karta Associativ Container i C ++
- Windows Presentation Foundation (WPF)
- Vad är ett inbyggt system?
- Använda reguljära uttryck i Perl
- C ++ Operators
- Spelprogrammering - den grundläggande strukturen och delar av ett spel Applicat…
- C ++ Templates
- String datatyp i Php