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

Opprette en Flash plattformspill med Flixel og Flex - Powerup Blocks

ore.hitWall (denne)) {Core.x = this.x - Core.width;} if (contactFromRight && Core.hitWall (denne)) {Core.x = dette .x + this.width;} if (contactFromBottom && Core.hitCeiling (denne)) {Core.y = this.y + this.height; if (! droppet) {bounceTime = BOUNCE_TIME; droppet = true; if (! dropFunction = null) dropFunction (denne); }} If (contactFromTop && Core.hitFloor (denne)) {Core.y = this.y - Core.height; }} Public styringsfunksjon oppdateringen (): void {super.update (); if (bounceTime = -1) {bounceTime - = FlxG.elapsed; if (bounceTime {bounceTime = -1;}..

}}

Akkurat som BounceBlock, kollisjonen funksjonen har blitt overstyrt I her skyver vi spilleren ut av blokken, akkurat som FlxBlock ville vi oppdager også når blokken har blitt rammet fra undersiden, og da starte vi hoppende og kaller funksjonen referert av dropFunction

 beskyttet styringsfunksjon getScreenXY (P: Point):. void {super.getScreenXY (P); if (bounceTime! = -1) Py + = tak i Math.sin (bounceTime /BOUNCE_TIME * Math.PI * BOUNCE_COUNT) * BOUNCE_HEIGHT;}} 

Blokkene spretter bør ikke påvirke hvordan den samhandler med spillobjektene - dvs.

når den spretter det skal kollidere som det ikke er i bevegelse. Den enkleste måten å gjøre denne blokken ser ut til å sprette, men ikke til å endre de interne variabler som påvirker kollisjonen kode, er å overstyre getScreenXY funksjon. Denne funksjonen betyr formåls verden posisjon (x- og y) inn i en posisjon på skjermen. Her, hvis blokken er hoppende, justerer vi y-verdien slik at det vil følge en sinuskurve, slik at det ser ut til å bevege seg opp og ned.

Siden vi ikke har endret x- og y-verdier for selve blokken, vil det fortsatt kolliderer som om det ikke var i bevegelse

 beskyttede Var powerupBlocks:. FlxArray = new FlxArray (); 
 offentlig funksjon 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 å holde powerup blokker. Vi legger også til en powerup blokk til denne samlingen på samme måte som vi legger til statiske blokker.

Den eneste forskjellen er at vi passerer i den nye dropCoin funksjon til PowerupBlcok, som vil bli kalt når spilleren hopper inn i blokken

 offentlige styringsfunksjon oppdateringen (): void {super.update ();. FlxG.collideArray (movingBlocks, spiller); FlxG.collideArray (powerupBlocks, spiller); FlxG.collideArray (

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