*   >> Lecture Éducation Articles >> science >> la programmation

Création d'un jeu de plateforme flash avec Flixel et Flex - Powerup Blocks

this.y && base .last.y + Core.height si (contactFromLeft && Core.hitWall (cette)) {Core.x = this.x - Core.width;} if (contactFromRight && Core.hitWall (cette)) {= ce Core.x .x + this.width;} if (contactFromBottom && Core.hitCeiling (cette)) {Core.y = this.y + this.hauteur; if (! chuté) {bounceTime = BOUNCE_TIME; chuté = true; if (! dropFunction = null) dropFunction (this); }} If (contactFromTop && Core.hitFloor (cette)) {Core.y = this.y - Core.height; }} Public override function update (): void {super.update (); if (bounceTime = -1!) {bounceTime - = FlxG.

elapsed; si (bounceTime {bounceTime = -1;}..}}

Tout comme le BounceBlock, la fonction de collision a été remplacé Ici nous poussons le joueur sur le bloc, tout comme le FlxBlock serait nous détectons également lorsque le bloc a été frappé par le dessous, dans ce cas, nous initions le rebond et appelons la fonction référencée par dropFunction

 fonction protected override getScreenXY (P: Point):. void {super.getScreenXY (P); if (bounceTime! = -1) + Py = Math.sin (bounceTime /BOUNCE_TIME * * Math.

PI BOUNCE_COUNT) * BOUNCE_HEIGHT;}}

Les blocs rebondissant ne devrait pas affecter la façon dont il interagit avec les objets du jeu - dire quand il rebondit, il devrait entrer en collision comme elle ne se déplace pas. La meilleure façon de faire ce bloc semble rebondir, mais de ne pas modifier les variables internes qui affectent le code de collision, est de remplacer la fonction getScreenXY. Cette fonction traduit la position du monde des objets (le x et y) dans une position à l'écran.

Ici, si le bloc est rebondissant, nous ajustons la valeur de sorte qu'il y suivra une onde sinusoïdale, ce qui semble monter et descendre. Depuis que nous avons pas modifié la valeurs X et Y pour le bloc lui-même, il sera toujours en collision comme si elle ne bougeaient pas

 protégées powerupBlocks var:. FlxArray = new FlxArray (); 
 GameState public function () {//... powerupBlocks.add (this.add (nouvelle PowerupBlock (dropCoin, LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 4, BLOCK_DIMENSIONS, BLOCK_DIMENSIONS, PowerupBlockImage))); //...

}

Le GameState gagne une nouvelle FlxArray pour maintenir les blocs de mise sous tension. Nous ajoutons également un bloc de mise sous tension à la cette collection dans une grande partie de la même manière que nous ajoutons blocs statiques. La seule différence est

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.