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

PushButton Tutorial Series - Enemies

ivider (); divider1.xCount = 2; IdleSpriteSheet.divider = divider1;

A única coisa a notar é que a folha de sprite inimigo tem apenas dois quadros de animação. Por padrão cada quadro de animação podem ser exibidos na tela por 50 milissegundos, tornando a taxa de animação padrão de 20 quadros por segundo. Para permitir uma taxa de quadros mais lento que precisamos para atribuir um valor à variável AnimationControllerInfo maxFrameDelay.

Desde que nós queremos exibir apenas 4 quadros por segundo, esse valor precisa ser 1000/4 = 250 milissegundos

 var IdleAnimation: AnimationControllerInfo = new AnimationControllerInfo ();. IdleAnimation.frameRate = 4; IdleAnimation.maxFrameDelay = 250; IdleAnimation.loop = true; IdleAnimation.spriteSheet = IdleSpriteSheet; Animation.animations ["idle"] = IdleAnimation; entity.addComponent (Animation, "Animação"); retornar entidade;} 

Quando o jogador se choca com um inimigo que quer que saltar fora.

Assim como fizemos com as plataformas, o componente KeyboardController vai assistir a uma colisão com um inimigo na função OnCollision. Quando uma colisão é detectada a variável recoilVector está definido para o normal da colisão

 OnCollision função privada (event: CollisionEvent):. Void {if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Plataforma ")) {if (event.normal.y> 0,7) onground ++; } Else if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Enemy")) {recoilVector = event.

normal; }}

Na função onTick vamos verificar para ver se a variável recoilVector foi definido para algo. Se ele tem que jogar um efeito de som para mostrar que o jogador tenha sido ferido, e a velocidade do jogador é definido como uma pequena quantidade ao longo da negativa do recoilVector, que vai saltar o jogador para longe do inimigo.

< pre> função override público 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; }

A variável recoilDelay é então contado para baixo a zero. O propósito disto é parar o jogador de ser controlado com o teclado para um curto período de tempo. Se não fizéssemos isso, o jogador poderia saltar fora um inimigo com o recoilVector, mas em seguida, passar direto de volta para o inimigo graças à velocidade aplicada em resposta a entrada do teclad

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.