}}
Precis som BounceBlock, kollisionsfunktionen har ändrats Här inne skjuta vi spelaren ur blocket, precis som FlxBlock skulle vi upptäcka även när blocket har drabbats underifrån, i vilket fall vi initiera studsande och anropa funktionen refereras av dropFunction Omdömen
skyddad override funktion getScreenXY (P: Point):. void {super.getScreenXY (P), om (bounceTime! = -1) Py + = Math.sin (bounceTime /BOUNCE_TIME * Math.PI * BOUNCE_COUNT) * BOUNCE_HEIGHT;}}
Blocken studsar bör inte påverka hur det interagerar med spel objekt - det vill säga när det studsar det ska kollidera som om det inte rör sig. Det enklaste sättet att göra detta block verkar studsa, men inte att ändra de interna variabler som påverkar kollisions koden, är att åsidosätta getScreenXY funktionen. Denna funktion översätter föremål världen position (x och y) till en position på skärmen. Här, om blocket studsar, justerar vi y-värdet så att det kommer att följa en sinusvåg, vilket gör det verkar röra sig upp och ner.
Eftersom vi inte har ändrat x- och y-värden för blocket i sig, kommer det fortfarande kolliderar som om det inte rörde sig Omdömen
skyddade Var powerupBlocks:. FlxArray = new FlxArray ();public function GameState () {//... powerupBlocks.add (this.add (ny PowerupBlock (dropCoin, LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 4 BLOCK_DIMENSIONS, BLOCK_DIMENSIONS, PowerupBlockImage))); //...}GameState får en ny FlxArray att hålla powerup blocken. Vi lägger också en powerup block till denna samling på ungefär samma sätt som vi lägger statiska block.
Den enda skillnaden är att vi passera i den nya dropCoin funktion i PowerupBlcok, som kommer att kallas när spelaren hoppar in i blocket Omdömen
public override uppdateringsfunktionen (): void {super.update ();. FlxG.collideArray (movingBlocks, spelare); FlxG.collideArray (powerupBlocks, spelare); FlxG.collideArray (levelBlocks, spel