*   >> Leitura Educação Artigos >> science >> programação

PushButton Tutorial Series - Rastreamento & amp; amp; Jumping

t.COLLISION_EVENT, OnCollision); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd);} protected override function onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd);.

}

A função OnCollision é acionado quando o proprietário do componente KeyboardController (a entidade jogador no nosso caso) foi envolvido em uma colisão

 função OnCollision privado (event: CollisionEvent): void {

Temos certeza de que a colisão é com uma "Plataforma". No futuro, o jogador também poderia colidir com inimigos, balas, upgrades, etc, mas nenhuma dessas colisões são relevantes para a KeyboardController.

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

collisionType, "Plataforma") ) {

Em seguida, verifique se a colisão normal, que você pode pensar como uma linha apontando perpendicular à plataforma, tem ay componente de pelo menos 0,7. Isso indica que a plataforma não é muito íngreme para se sustentar.

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

Se não for muito íngreme, nós incrementar a variável onground para indicar que o jogador é de pé sobre uma plataforma

 onground ++.

; }}

A função OnCollisionEnd faz o inverso, diminuindo a variável onground quando o jogador não está colidindo com uma plataforma

 função privada OnCollisionEnd (event: CollisionEvent):. void {if (ObjectTypeManager.instance. doesTypeOverlap (event.collidee.collisionType, "Plataforma")) {if (event.normal.y> 0,7) onGround--; }} 

A variável onground agora indica se o jogador está de pé no chão. Na função onTick vamos verificar para ver se a tecla de salto é pressionada e onground é maior do que zero.

Se assim os jogadores velocidade vertical modificado para torná-lo saltar

 função override público onTick (Tickrate: Number):. Void {//... if (InputManager.isKeyDown (InputKey.UP) && onground> 0) {velocity.y = -JumpSpeed; } //...}
Page   <<  [1] [2] 
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.