*   >> läser Utbildning artiklar >> science >> programming

Tryckknapp Tutorial Series - Enemies

riteSheet.divider = divider1;

Det enda värt att notera är att fienden sprite blad har endast två ramar av animation. Som standard varje bildruta av animation kan visas på skärmen under 50 millisekunder, vilket gör standard animation hastigheten 20 bilder per sekund. För att möjliggöra en långsammare bildfrekvens måste vi tilldela ett värde till AnimationControllerInfo maxFrameDelay variabeln. Eftersom vi vill bara visa fyra bilder per sekund, måste detta värde vara 1000/4 = 250 millisekunder Omdömen

 var IdleAnimation: AnimationControllerInfo = new AnimationControllerInfo ();.

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

När spelaren kolliderar med en fiende som vi vill att det ska studsa. Precis som vi gjorde med plattformarna kommer KeyboardController komponenten titta på en kollision med en fiende i OnCollision funktionen.

När en kollision detekteras recoilVector variabeln är satt till den normala kollisionsOmdömen

 private function OnCollision (event: CollisionEvent):. Void {if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Plattform ")) {if (event.normal.y> 0,7) onGround ++; } Else if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType "Enemy")) {recoilVector = event.normal; }} 

I onTick funktionen kontrollerar vi att se om recoilVector variabeln har ställts in på något.

Om det har vi spelar en ljudeffekt för att visa att spelaren har blivit sårad, och hastigheten för spelaren är inställd på en liten mängd längs negativa av recoilVector, som kommer att studsa spelaren bort från fienden. Omdömen < pre> public override function 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 variabel räknas sedan ned till noll.

Syftet med detta är att stoppa spelaren från att styras med tangentbordet under en kort tid tid. Om vi ​​inte gör detta spelare kan studsa en fiende med recoilVector, men sedan flytta rakt tillbaka in i fiendens tack vare hastigheten tillämpas som svar på tangentbordet, besegra syftet. Omdömen

 if (recoilDelay > 0) {recoilDelay - = tickrate; recoilDelay = recoilD

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.