*   >> Lecture Éducation Articles >> science >> la programmation

PushButton Tutorial Series - Enemies

ilename = "../media/enemy.png"; var divider1: CellCountDivider = new CellCountDivider (); divider1.xCount = 2; IdleSpriteSheet.divider = divider1;

La seule chose à noter est que la feuille de sprite ennemi ne dispose que de 2 images d'animation. Par défaut, chaque trame de l'animation peut être affichée sur l'écran pendant 50 millisecondes, ce qui rend le taux d'animation par défaut 20 images par seconde. Pour permettre une cadence plus lente que nous devons attribuer une valeur à la variable AnimationControllerInfo maxFrameDelay.

Puisque nous voulons afficher seulement 4 images par seconde, cette valeur doit être 1000/4 = 250 millisecondes

 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"); retourner entité;} 

Quand le joueur entre en collision avec un ennemi que nous voulons qu'il rebondir.

Tout comme nous avons fait avec les plates-formes, la composante keyboardcontroller va regarder pour une collision avec un ennemi dans la fonction onCollision. Lorsqu'une collision est détectée la variable recoilVector est réglé à la normale de la collision

 privée fonction onCollision (event: CollisionEvent):. Void {if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, «Plate-forme ")) {if (event.normal.y> 0,7) surterre ++; } Else if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Enemy")) {recoilVector = event.

normal; }}

Dans la fonction onTick nous vérifions pour voir si la variable recoilVector a été fixé à quelque chose. Si elle a nous jouons un effet sonore à montrer que le joueur a été blessé, et la vitesse du lecteur est réglé sur une petite quantité le long de la négative de la recoilVector, qui va rebondir le joueur loin de l'ennemi.

< 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; }

La variable recoilDelay est alors décompté à zéro. Le but est d'arrêter le joueur d'être contrôlée avec le clavier pour une courte durée de temps. Si nous ne faisons pas cela le joueur pourrait rebondir sur un

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.