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
Opprette en Flash plattformspill med Flixel og Flex - Lyd og Music
- Hvordan få gratis Apps på Ipod Touch /Iphone.
- Å gjøre en 3D-spill med Ogre - Collision Detection
- Loop Konstruksjoner I C
- Hvordan Aktiver At & amp; amp; t'Viderekobling' Remotely
- Ny funksjon av Adobe Flash CS4
- Omvendt Phone Lookup
- Funksjon og operatør Overbelastning i C ++
- Data Ordbok
- Edit Control i Windows
- Grunnleggende om tilgang til filer i C ++