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

PushButton Tutorial Series - Enemies

new CellCountDivider (); divider1.xCount = 2; IdleSpriteSheet.divider = divider1;

Het enige ding vermeldenswaard is dat de vijand sprite sheet heeft slechts 2 frames van de animatie. Standaard is elk frame van de animatie op het scherm kan worden weergegeven voor 50 milliseconden, waardoor de standaard animatie percentage van 20 frames per seconde. Om een ​​langzamere framerate laten we nodig hebben om een ​​waarde aan de AnimationControllerInfo maxFrameDelay variabele toewijzen.

Aangezien wij willen slechts 4 frames per seconde weergegeven, deze waarde moet worden 1000/4 = 250 milliseconden

 var IdleAnimation: AnimationControllerInfo = new AnimationControllerInfo ();. IdleAnimation.frameRate = 4; IdleAnimation.maxFrameDelay = 250; IdleAnimation.loop = true; IdleAnimation.spriteSheet = IdleSpriteSheet; Animation.animations ["Idle"] = IdleAnimation; entity.addComponent (Animatie, "Animatie"); entiteit terugkeren;} 

Als de speler botst met een vijand die we willen dat het stuiteren.

Net zoals we hebben gedaan met de platforms, zal de keyboardcontroller component kijken voor een botsing met een vijand in de OnCollision functie. Wanneer een botsing wordt gedetecteerd de recoilVector variabele is ingesteld op de normale van de botsing

 privéaangelegenheid 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; }}

In de onTick functie we controleren om te zien of de recoilVector variabele is ingesteld op iets. Als het spelen we een geluidseffect aan te tonen dat de speler is gekwetst, en de snelheid van de speler is ingesteld om een ​​kleine hoeveelheid langs de negatieve van de recoilVector, die weg zal stuiteren van de speler van de vijand.

< pre> openbare override functie onTick (tickrate: Number): void {//... als (! recoilVector = null) {if (! hurtSound = null) hurtSound.play (); velocity.x - = recoilVector.x * RecoilSpeed; velocity.y - = recoilVector.

y * RecoilSpeed; recoilVector = null; recoilDelay = RecoilDelay; }

De recoilDelay variabele wordt vervolgens afgeteld tot nul. Het doel hiervan is om de speler te stoppen wordt bestuurd met toetsenbord voor een korte tijdsduur. Als we dit niet doen de speler kon stuiteren een vijand met de recoilVector, maar beweeg dan direct terug n

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