..:: MX Studio Fóruns ::..: Escada no Flash? venha Aprender! - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Escada no Flash? venha Aprender! TUTOOO ;D

#1 User is offline   diммy Flαรн.єxє 

  • Group: Membros
  • Posts: 27
  • Joined: 24-September 09

  Posted 24 September 2009 - 09:13 PM

Enquanto escadas costura para ser fácil, há algumas coisas a considerar. Em primeiro lugar, que tipo de escadas estão lá?



Na imagem, existem 4 tipos diferentes de escadas. Em azulejo Uma escada está dentro da telha da parede, que normalmente não é passável. O herói pode fazer em uma telha? Ele pode subir e descer, mas ele deve mais ser capaz de andar para a esquerda ou direita ou ele será preso na parede. Pergunte a qualquer um, que foi preso na parede e todos dizem que a faz se sentir bem.

Em azulejo B telha escada em si é passável e telha por cima também tem escada, assim o herói deve ser capaz de subir e descer. Hero também pode mover para a esquerda ou direita, mas quando o faz, ele deve cair para baixo depois de sair da escada.

Em azulejo C there isnt escada abaixo e subir herói shouldnt para baixo, ele só pode subir a pé ou esquerda / direita.

Tile D não está disponível em todos os jogos. Alguns pensam que é apenas um nível de design ruim, levar doesnt escada em qualquer lugar, que termina no ar. Herói deve ser capaz de subir acima dela e ficar na escada? Ele pode andar em seguida à direita na telha sólido ao lado de escada?

Esses são apenas alguns exemplos, existem muitos mais tipos possíveis de escadas, mas eu espero que você possa ver como é importante ter a definição exata antes de tentar escrever o código. Como os jogos não são todos semelhantes, então algo encaixe perfeitamente em um jogo, é perda de tempo, energia e paz no mundo no outro jogo.

As regras
Permite gravar as nossas regras de escadas e circulação de herói:
1. Hero pode subir na escada usando cima e para baixo teclas de setas
2. Hero pode subir se houver escada em seu centro actual pontos para cima ou para baixo
3. O herói pode descer se o azulejo seu ponto central para baixo acaba, tem escada
4. O herói pode mover para a esquerda / direita da escada, se nenhum dos seus pontos de canto vai acabar no muro
5. Hero salto cant da escada


Isso deve fazê-lo.

Uma escada, por favor
Usaremos clipe de filme em separado com gráficos escada que será afixado no azulejo em azulejo tem escada. Dessa forma, nós não temos que desenhar gráficos diferentes para cada escada de diferentes origens. Verifique se o seu clipe de filme tem escada "Exportar este filme" marcada e está ligada como "escada".



No clipe de filme escada desenhar gráficos escada mesma altura como a telha e colocá-los no centro da telha lateralmente.

Como em todos os outros a telha, vamos declarar um novo tipo de telha para escadas:

CÓDIGO
game.Tile4 = function () ();
game.Tile4.prototype.walkable = false;
game.Tile4.prototype.frame = 2;
game.Tile4.prototype.ladder = true;
game.Tile4.prototype.item escada = "";
game.Tile5 = function () ();
game.Tile5.prototype.walkable = true;
game.Tile5.prototype.frame = 1;
game.Tile5.prototype.ladder = true;
game.Tile5.prototype.item escada = "";

Esses dois tipos de escada tem número de quadro diferente para mostrar, mas ambos têm a propriedade "escada" definido para true (vamos usá-lo para verificar se o herói está em qualquer lugar perto da escada) e ambos têm a propriedade "item" igual a "escada "(vamos usar isso para anexar gráficos escada para o azulejo).

Anexar o filme escada para o azulejo na função buildMap após o envio de telha para corrigir quadro:

CÓDIGO
game.clip [nome]. gotoAndStop (game [name]. frame);
if (game [name]. item! = undefined) (
   game.clip [nome]. game (attachMovie [nome]. item, "item", 1);
)

Este código verifica se o item "propriedade" no azulejo actual tem valor não-vazio. Se o "item" tem valor, então damos clipe de filme ligado com o nome como o valor de "item" de propriedade para o ladrilho atual e terá nome de instância "item". Você pode anexar quaisquer outros itens mesma forma, apenas não tente colocar muitos itens na telha mesmo.

Para não digitar o mesmo código duas vezes, permite mover o final da função moveChar e fazer a função de separar a nomeação updateChar esta nova função. função moveChar vai terminar com:

CÓDIGO
updateChar (ob, dirx, diry);
return (true);
e função updateChar terá:

updateChar function (ob, dirx, diry) (
   ob.clip._x = ob.x;
   ob.clip._y = ob.y;
   ob.clip.gotoAndStop (dirx + diry * 2 +3);
   ob.xtile = Math.floor (ob.clip._x / game.tileW);
   ob.ytile = Math.floor (ob.clip._y / game.tileH);
   if (game [ "t_" + ob.ytile +"_"+ ob.xtile]. porta e ob == _root.char) (
     changeMap (OB);
   )
)

Em função da queda adicionar

ob.climb = false;
Modificar detectKeys função para as teclas de seta:

CÓDIGO
if (Key.isDown Key.RIGHT ()) (
   getMyCorners (ob.x-ob.speed, ob.y, ob);
   if (ob.climb! ou ob.downleft e ob.upleft e ob.upright e ob.downright) (
     _root.moveChar keyPressed = (ob, 1, 0);
   )
) Else if (Key.isDown (Key.LEFT)) (
   getMyCorners (ob.x-ob.speed, ob.y, ob);
   if (ob.climb! ou ob.downleft e ob.upleft e ob.upright e ob.downright) (
     _root.moveChar keyPressed = (ob, -1, 0);
   )
) Else if (Key.isDown (Key.UP)) (
   if (ob.jump! e checkUpLadder (ob)) (
     _root.climb keyPressed = (ob, -1);
   )
) Else if (Key.isDown (Key.DOWN)) (
   if (ob.jump! e checkDownLadder (ob)) (
     _root.climb keyPressed = (ob, 1);
   )
)

Depois temos detectado a esquerda ou seta para a direita, vamos verificar se o herói não é escalada (ob.climb!) Ou em caso que ele está subindo, vamos verificar que nenhum dos seus pontos de canto será na parede.

Para cima e para baixo teclas de setas que verificar primeiro se o herói não está pulando (ob.jump!) E as condições para a escalada são cumpridas utilizando duas novas funções: checkUpLadder e checkDownLadder. Se está tudo bem, que chamamos de nova função "subir" para movimentar nosso herói.

Escalada funções
Faremos 3 novas funções para a escalada, 1 para verificar se ele é bom para subir, 1 para verificar se é que podemos descer e última função para mover personagem.

CÓDIGO
checkUpLadder function (ob) (
   Downy var = Math.floor ((ob.y + ob.height-1) / game.tileH)
   upy var = Math.floor (((ob.y-ob.height)-ob.speed) / game.tileW)
   upLadder var jogo = [ "t_" + upy +"_"+ ob.xtile]. escada
   downLadder var jogo = [ "t_" + downy +"_"+ ob.xtile]. escada
   upBlock var jogo = [ "t_" + upy +"_"+ ob.xtile]. walkable
   if (upLadder == true ou upBlock == true) (
     if (upLadder ou downLadder) (
       return (true)
     )
   ) else (
     ob.ytile ob.y = * game.tileH + ob.height;
     (ob updateChar, 0, -1)
     return (false)
   )
)

Este código calcula primeiro para cima e para baixo pontos centrais do nosso herói. Se a telha com ponto central superior tem qualquer escada ou é walkable podemos fazer outra verificação para certificar-se, pelo menos, 1 escada é colocada em cima ou para baixo ponto central.

CÓDIGO
checkDownLadder function (ob) (
   Downy var = Math.floor ((ob.speed + + ob.y ob.height) / game.tileH);
   downLadder var jogo = [ "t_" + Downy +"_"+ ob.xtile]. escada;
   if (downLadder) (
     return (true);
   ) Else (
     fall (ob);
   )
)

Para verificar a descer, precisamos de "propriedade" escada do lado abaixo do herói. Mas ao contrário de subir, temos que olhar para o azulejo, onde o herói estará de pé depois que ele se move (ob.speed + + ob.y ob.height).

CÓDIGO
subir function (ob, diry) (
   ob.climb = true;
   ob.jump = false;
   ob.y + = diry * ob.speed;
   ob.x = (ob.xtile game.tileW *) + game.tileW / 2;
   (ob updateChar, 0, diry);
   return (true);
)

Na subida função que definir primeiro a escalar bandeiras a verdade e passar para falso. Em seguida, calculamos y posição nova para o herói. Em seguida, será a posição do herói lateralmente no centro da escada:

CÓDIGO
ob.x = (ob.xtile game.tileW *) + game.tileW / 2;

O herói pode começar a subir, enquanto o seu centro está em azulejo com escada, mas ficaria estranho se ele iria subir no lado direito ou esquerdo da escada.

Última actualização que a posição real do personagem usando função updateChar mesmo.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse

  Topic Forum Started By Stats Last Post Info
New Replies Dúvida Geral - Certificado Oficial
Oq posso fazer com o flash?!?
Flash & ActionScript paulohnt 
  • 5 Replies
  • 1204 Views
New Replies FLASH NO EMAIL
Como mandar newslleters com flash?
Dreamweaver crisan19 
  • 5 Replies
  • 1537 Views
New Replies Flash button
Como instalar um botao de flash?
Dreamweaver Waldecleber 
  • 1 Reply
  • 906 Views
New Replies Newsletter No Flash 8.
Como adicionar newsletter no flash?
Flash & ActionScript AlbertoJaques 
  • 3 Replies
  • 2250 Views
New Replies Como fazer expressao regular no flash?
Como fazer expressao regular no flash?
Flash & ActionScript mestre5 
  • 6 Replies
  • 2343 Views
New Replies Como criar uma sondagem em flash?
Como criar uma sondagem em flash?
Flash & ActionScript clardesign 
  • 1 Reply
  • 597 Views
New Replies Como exibir vários videos na mesma página em Flash? Flash & ActionScript fernandojp 
  • 1 Reply
  • 1902 Views
New Replies Como faço isso no flash??? Flash & ActionScript raquelma 
  • 2 Replies
  • 817 Views

Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)