*   >> Læs Uddannelse artikler >> science >> programming

Trykknap Tutorial Series - Fjender

r1

Det eneste værd at bemærke er, at fjenden sprite ark har kun 2 billeder af animation. Som standard kan vises hver ramme af animationen på skærmen i 50 millisekunder, hvilket gør standard animation hastighed 20 billeder per sekund. Hvis du vil tillade en langsommere frame rate, vi har brug for at tildele en værdi til den AnimationControllerInfo maxFrameDelay variabel. Da vi ønsker at vise kun 4 billeder i sekundet, denne værdi skal være 1000/4 = 250 millisekunder

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

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

Når afspilleren kolliderer med en fjende, vi vil have det til hoppe ud. Ligesom vi gjorde med platformene, vil KeyboardController komponent se for en kollision med en fjende i OnCollision funktionen. Når der registreres en kollision på recoilVector variablen er sat til normal af kollisionen

 private funktion OnCollision (hændelse: 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 funktion, vi kontrollere at se, om recoilVector variablen er sat til noget. Hvis den har vi spiller en lydeffekt for at vise, at spilleren er blevet såret, og hastigheden af ​​afspilleren er indstillet til en lille mængde langs negativ af recoilVector, som vil hoppe spilleren væk fra fjenden.


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

recoilDelay variablen derefter tælles ned til nul. Formålet med dette er at stoppe den spiller fra at blive kontrolleret med tastaturet i en kort periode af tid.

Hvis vi ikke gjorde det spilleren kunne hoppe ud en fjende med recoilVector, men derefter flytte lige tilbage ind i fjendens takket være hastigheden anvendes som reaktion på tastatur input, besejre formålet.

 if (recoilDelay > 0) {recoilDelay - = Tickrate; recoilDelay = recoilDelay
Page   <<  [1] [2] 
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.