beskyttet Var startingX: int;. beskyttet Var maxHorizontalMovement: int; beskyttede Var GIBS: FlxEmitterstartingX variable butikker startpositionen af fjenden. Eftersom alle fjender starter til venstre for en blok, og vi ved, hvor bred en blok er, kan vi bruge startende med fjender aktuelle position at bestemme, hvornår det skal flytte tilbage til højre for at undgå at falde ud over kanten.
< p> maxHorizontalMovement variabel er bredden af den underliggende blok. Dette, i kombination med startingX variabel, stopper fjender bevæger sig ud over kanten af blokken.
GIBS variabel vil holde et FlxEmitter, der er som en partikel-system, som vil blive vist en eksplosion af gibs, når fjenden er ødelagt
offentlig funktion 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 ligetil. Vi har simpelthen setup de underliggende FlxSprite variabler sammen med dem, vi specificeret os selv, og derefter setup fjendens animation. . Vi skaber også et nyt FlxEmitter, som vil vise byge af gibs, når fjenden dør
offentlige overstyringsfunktion opdatering (): void {super.update (); hvis (this.x - this.startingX> = maxHorizontalMovement) {this.x = this.startingX + maxHorizontalMovement; this.velocity.x = -ENEMY_SPEED; .} Else if (this.x - this.startingX
I opdateringsfunktionen ændrer vi hastigheden af fjenden, hvis det har bevæget over kanten af den underliggende blok
offentlige override funktion hitWall (Kontaktperson: null FlxCore =): Boolean {this.velocity.x = -this.velocity.x; returnere sandt;}hitWall funktionen vil blive kaldt, hvis fjenden har ramt en mur Da vi ved stien er klar over.
venstre for den underliggende blok, betyder det, at fjenden ramte en blok, da det flyttede ret i dette tilfælde vi simpelthen sat hastigheden til at flytte fjenden tilbage til venstre
offentlige overstyringsfunktion kill ():.. ugyldig {super.kill (); this.gibs.x = this.x + (this.width >> 1), this.gibs.y = this.y + (this.height >>Oprettelse af en Flash-platform spil med flixel og Flex - Lyd og Music
- Awesome Tastatur Blinkende Trick
- Kort Operationer i C ++
- Afledt Klasse-erklæringen og adgang Projekteringsvejledning i C ++
- Brug Javascript String Regelmæssig Expressions
- Referentiel integritet i databasen
- Konsol Application hjælp Konstruktioner ( struct søgeord) i C # 1.1 og 2.0 ( D…
- Enkel Windows (og måske andre styresystemer) Konsol Color Randomizer (C ++)
- Pseudo Classes
- Opnåelse Klarhed For Team Work Med Sharepoint Web Parts
- C ++ objektorienteret programmering