*   >> Lese Utdanning Artikler >> science >> programming

Opprette en Flash plattformspill med Flixel og Flex - Enemies

anter den definere fiendens helse og hastighet

 beskyttet Var startingX: int;. beskyttet Var maxHorizontalMovement: int; beskyttede Var gibs: FlxEmitter; 

startingX variable lagrer startposisjonen av fienden. Siden alle fiender starter på venstre av en blokk, og vi vet hvor bredt en blokk er, kan vi bruke starter med fiender nåværende posisjon til å bestemme når det skal flytte tilbake til høyre for å unngå å falle utenfor kanten.

< p> maxHorizontalMovement variable er bredden av den underliggende blokk.

Dette, i kombinasjon med startingX variabel, stopper fiendene beveger seg utenfor kanten av blokken.

gibs variabel vil holde en FlxEmitter, som er som en partikkel system, som vil være viser en eksplosjon av gibs når fienden er ødelagt

 offentlig funksjon 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"); }

Alt dette kode er rett frem. Vi bare setup de underliggende FlxSprite variablene sammen med dem vi spesifisert oss selv, og deretter setup fiendens animasjon. . Vi skaper også en ny FlxEmitter, som vil vise dusjen av gibs når fienden dør

 offentlige styringsfunksjon oppdateringen (): 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 oppdateringsfunksjonen endrer vi hastigheten av fienden hvis den har flyttet over kanten av den underliggende blokk

 offentlige styringsfunksjon hitWall (Kontakt: FlxCore = null): Boolean {this.velocity.x = -this.velocity.x; return true;} 

hitWall funksjonen vil bli kalt hvis fienden har truffet en vegg Siden vi vet at banen er klar over.

venstre side av den underliggende blokk, betyr dette at fienden treffer en blokk som den beveget seg rett I dette tilfelle vi bare sette hastigheten for å bevege fienden tilbake til venstre

 offentlig styringsfunksjon kill ():.. void {super.kill (); this.gibs.x = this.x + (this.width >> 1); this.gibs.y = this.y + (this.height >> 1); this.gibs.restart ();}}} 

kill funksjonen k

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.