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
Trykknap Tutorial Series - Parallax Background
- Cassini Opdagede Dione Tilstedeværelse af Oxygen
- Associativ Container i C ++ Simplified
- ActivePerl Subrutiner
- Grundlæggende om Css Fonts
- Sådan adgang til og bruge en Windows-kommando line
- DirectX vs OpenGL
- Objektorienterede Programming
- Nogle C foruddefinerede funktioner
- Farm Management Software
- Identifikation dataelementer og Entities