José Enésio 4 Denunciar post Postado Fevereiro 17, 2008 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