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

Trykknapp Tutorial Series - Fiender

divider1;

Det eneste som er verdt å merke seg er at fienden sprite ark har bare to bilder av animasjon. Som standard hver ramme av animasjon kan vises på skjermen i 50 millisekunder, noe som gjør standard animasjonshastigheten 20 bilder per sekund. Å tillate en lavere bildefrekvens vi trenger å tildele en verdi til AnimationControllerInfo maxFrameDelay variabel. Siden vi ønsker å vise bare fire bilder per sekund, må denne verdien til å være 1000/4 = 250 millisekunder

 Var IdleAnimation: AnimationControllerInfo = new AnimationControllerInfo ();. IdleAnimation.

frameRate = 4; IdleAnimation.maxFrameDelay = 250; IdleAnimation.loop = true; IdleAnimation.spriteSheet = IdleSpriteSheet; Animation.animations ["Idle"] = IdleAnimation; entity.addComponent (Animasjon, "Animasjon"); returnere enhet;}

Når spilleren kolliderer med en fiende vi vil at det skal sprette av. Akkurat som vi gjorde med plattformene, vil KeyboardController komponent se etter en kollisjon med en fiende i OnCollision funksjonen. Når en kollisjon blir oppdaget recoilVector variabelen er satt til den normale av kollisjonen

 privat funksjon OnCollision (event: CollisionEvent):.

Void {if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Platform ")) {if (event.normal.y> 0,7) onGround ++; } Else if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Enemy")) {recoilVector = event.normal; }}

I onTick funksjon vi sjekke for å se om recoilVector variablen er satt til noe. Hvis det har vi spiller en lydeffekt for å vise at spilleren har blitt såret, og hastigheten av spilleren er satt til en liten mengde langs negativ av recoilVector, som vil sprette spilleren bort fra fienden.


< pre> offentlige styringsfunksjon onTick (tickRate: Number): void {//... if (! recoilVector = null) {if (! hurtSound = null) hurtSound.play (); velocity.x - = recoilVector.x * RecoilSpeed; velocity.y - = recoilVector.y * RecoilSpeed; recoilVector = null; recoilDelay = RecoilDelay; }

recoilDelay variable blir deretter telles ned til null. Hensikten med dette er å hindre at spilleren kan kontrolleres ved hjelp av tastaturet for en kort varighet.

Hvis vi ikke gjør dette spilleren kunne sprette av en fiende med recoilVector, men deretter gå rett tilbake inn i fiendens takket være hastighets søkt svar på keyboard input, beseiret formålet.

 if (recoilDelay > 0) {recoilDelay - = tickRate; recoilDelay = recoilDelay
Page   <<  [1] [2] 
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.