Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

José Enésio

[Resolvido] Carrinho Multiplayer

Recommended Posts

Olá gente!!! Hoje vamos criar um sistema multiplayer aqui para os nossos carrinhos! Pra quem quer ver o que é, olha aqui:

 

http://img175.imageshack.us/my.php?image=carro5pj0.swf

 

As setinhas movem o carro vermelho, e as teclas wasd (como no Counter Strike) movem o carro azul.

 

Vamos fazer isso???

 

 

Bom, primeiro quero que vocês baixem a versão mais completa da classe de carrinhos:

 

http://stuff.mihopa.info/carrinho/Car.as

 

E criem o nosso fla do carrinho na mesma pasta que a classe.

 

Bom, vamos começar com fundo verde para representar a nossa rica e verdinha graminha, então desenhe um retângulo cinza sobre o palco; desenho dois retângulos dentro desse retângulo, tem que ser do mesmo tamanho; desenhe um e copie para o outro lado. Esses serão os espaços onde irão as telas!

 

Agora, crie um MovieClip vazio com Ctrl+F8, pode nomea-lo como janela, nele crie uma nova camada, transforme-a em Mask, e nela desenhe o mesmo retângulo que foi usado para criar o espaço para a janela. Transforme esse retângulo em MovieClip e nomeie-o como mask.

 

Na camada abaixo (que deve estar mascarada por essa camada mask), faça um MovieClip de pista, posicione-o como desejar e nomeie a instância como pista. Agora pegue dois MovieClips de carrinhos, posicione-os como desejar, e nomeie-os como carro_1p e carro_2p. Agora ative as máscaras para ver se ficou bom!

 

Finalmente, saia dos MovieClips, e lá na nossa cena com os espaços para as janelas, crie duas instâncias do nosso MC janela, janela_1p e janela_2p, posicione-os nos dois espaços!

 

Agora a parte legal (ou não) disso tudo, o código. Quebrei a cabeça até aprontar esse código, e agora tá funcionando, aleluia!!!

 

//cria um objeto carro que irá representar o carro do primeiro jogador

//esse carro possui os comandos das setas

//a pista cuja posição é afetada por ele é a que se encontra na janela 1

//e o objeto que contem as informações de largura e altura da janela é a mask da janela 1

var carro_1p = new Car(300, 3, 5, 5, janela_1p.carro_1p);

carro_1p.setCommands(Key.UP, Key.DOWN, Key.LEFT, Key.RIGHT);

carro_1p.setTrack(janela_1p.pista, true);

carro_1p.setScreen(janela_1p.mask);

carro_1p.focus();

 

//cria um objeto carro que irá representar o carro do segundo jogador

//esse carro possui os comandos WASD do CS!

//a pista cuja posição é afetada por ele é a que se encontra na janela 2

//e o objeto que contem as informações de largura e altura da janela é a mask da janela 2

var carro_2p = new Car(200, 6, 7, 6, janela_2p.carro_2p);

carro_2p.setCommands(87, 83, 65, 68);

carro_2p.setTrack(janela_2p.pista, true);

carro_2p.setScreen(janela_2p.mask);

carro_2p.focus();

//para descobrir os códigos das teclas de teclado, crie um flash vazio, e use este código:

/*

var kl:Object = new Object();

kl.onKeyDown = function(){

trace("Codigo: " + Key.getCode());

}

Key.addListener(kl);

*/

//e aperte as teclas que quer ver o código

 

//atualiza a posição do carro 2 dentro da janela do jogador 1

janela_1p.onEnterFrame = function(){

this.carro_2p._x = (this.pista._x - this.carro_1p._x) - (janela_2p.pista._x - janela_2p.carro_2p._x) + this.mask._width/2;

this.carro_2p._y = (this.pista._y - this.carro_1p._y) - (janela_2p.pista._y - janela_2p.carro_2p._y) + this.mask._height/2;

this.carro_2p._rotation = janela_2p.carro_2p._rotation;

}

 

//atualiza a posição do carro 1 dentro da janela do jogador 2

janela_2p.onEnterFrame = function(){

this.carro_1p._x = (this.pista._x - this.carro_2p._x) - (janela_1p.pista._x - janela_1p.carro_1p._x) + this.mask._width/2;

this.carro_1p._y = (this.pista._y - this.carro_2p._y) - (janela_1p.pista._y - janela_1p.carro_1p._y) + this.mask._height/2;

this.carro_1p._rotation = janela_1p.carro_1p._rotation;

}

 

E.... pra completar..... DIVIRTAM-SE!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.