*   >> Lezen Onderwijs artikelen >> science >> programming

Het creëren van een Flash-platform game met flixel en Flex - Powerup Blocks

this.y && Core .last.y + Core.height if (contactFromLeft && Core.hitWall (dit)) {Core.x = this.x - Core.width;} if (contactFromRight && Core.hitWall (dit)) {Core.x = deze .x + this.width;} if (contactFromBottom && Core.hitCeiling (dit)) {Core.y = this.y + this.height; if (! gedaald) {bounce = BOUNCE_TIME; daalde = true; if (! dropFunction = null) dropFunction (dit); }} If (contactFromTop && Core.hitFloor (dit)) {Core.y = this.y - Core.height; }} Public override functie update (): void {super.update (); if (bounce = -1!) {bounce - = FlxG.elapsed; if (bounce {bounce = -1;}..

}}

Net als de BounceBlock, de botsing functie werd opgeheven In hier duwen we de speler uit het blok, net als de FlxBlock zou We detecteren ook wanneer het blok is geraakt van onderaf, in welk geval we inleiding van de stuiterende en bel de functie waarnaar wordt verwezen door dropFunction

 beschermd override functie getScreenXY (P: Point):. leegte {super.getScreenXY (P); if (bounce! = -1) Py + = Math.sin (bounce /BOUNCE_TIME * Math.

PI * BOUNCE_COUNT) * BOUNCE_HEIGHT;}}

De blokken stuiteren mag geen invloed hebben op hoe deze samenwerkt met spel objecten - dat wil zeggen wanneer het stuitert het zou botsen als het niet beweegt. De eenvoudigste manier om dit blok lijkt te stuiteren, maar niet de interne variabelen die de botsing code beïnvloeden wijzigen om de getScreenXY functie negeren. Deze functie zet de objecten wereld stand (de x en y) in een positie op het scherm. Hier, als het blok wordt stuiteren, passen we de y-waarde, zodat het een sinus zal volgen, waardoor het lijkt te bewegen op en neer.

Aangezien wij niet hebben gewijzigd de x- en y-waarden voor het blok zelf, zal het nog steeds botsen alsof het niet beweegt

 beschermd var powerupBlocks. FlxArray = new FlxArray (); 
 openbare functie gamestate () {//... powerupBlocks.add (this.add (nieuw PowerupBlock (dropCoin, LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 4, BLOCK_DIMENSIONS, BLOCK_DIMENSIONS, PowerupBlockImage))); //...} 

De gamestate krijgt een nieuw FlxArray om de powerup blokken te houden.

We een powerup blok ook toevoegen aan de collectie op vrijwel dezelfde manier dat we voegen statische blokken. Het enige verschil is dat we nu in het nieuwe dropCoin functie om de PowerupBlcok, die zal worden genoemd als de speler springt in het blok

 openbare override functie update (): void {super.update ();. FlxG.collideArray (movingBlocks, speler); FlxG.collideArray (powe

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.