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

PushButton Tutorial Series - Tracking & amp; amp; Jumping

roller.as

 fonction protected override onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, onCollision); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd);} protégée fonction override onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, onCollision); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd);.

}

La fonction onCollision est déclenchée lorsque le propriétaire de la composante keyboardcontroller (l'entité de joueur dans notre cas) a été impliqué dans une collision

 fonction privée onCollision (event: CollisionEvent): void {

Nous nous assurons que la collision est d'une "plate-forme". À l'avenir, le joueur pourrait également entrer en collision avec des ennemis, des balles, des bonus, etc, mais aucune de ces collisions sont pertinents à l'keyboardcontroller.

 if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.

collisionType, «Plateforme») ) {

Ensuite, nous vérifions pour voir si la collision normal, que vous pouvez considérer comme une ligne précisant perpendiculaire à la plate-forme, a ay composant d'au moins 0,7. Cela indique que la plate-forme est pas trop raide pour se tenir debout.

 if (event.normal.y> 0,7) 

Si il est pas trop raide, on incrémente la variable surterre pour indiquer que le joueur est debout sur une plate-forme

 surterre ++.

}}

La fonction OnCollisionEnd fait l'inverse, décrémenter la variable surterre lorsque le joueur est plus collision avec une plate-forme

 fonction privée OnCollisionEnd (event: CollisionEvent):. void {if (ObjectTypeManager.instance. doesTypeOverlap (event.collidee.collisionType, "plate-forme")) {if (event.normal.y> 0,7) onGround--; }} 

La variable surterre indique maintenant de savoir si le joueur est debout sur le terrain. Dans la fonction onTick nous vérifions pour voir si la touche de saut est pressé et surterre est supérieur à zéro.

Si donc les joueurs vitesse verticale modifié pour le faire sauter

 public override function onTick (tickrate: Number):. Void {//... si (InputManager.isKeyDown (InputKey.UP) && surterre> 0) {velocity.y = -JumpSpeed; } //...}
Page   <<  [1] [2] 
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.