Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Flash » Movimento de carrinho para flash -->
 
Avaliação: | Publicado em: 09/11/2006
Movimento de carrinho para flash
Marcio Agnelo Márcio Agnelo. Hoje com 30 anos. É músico, desenhista, designer, programador e web developer. Trabalha com internet há 9 anos e ministrou cursos em São Paulo de Flash com Actionscript e também de ASP.


Nesse tópico abordarei o que aparenta ser a coisa mais difícil do mundo. Fazer movimento de carrinho para game.

Primeiramente vamos abrir nosso Macromedia/Adobe Flash 8.

Abaixo usarei esse carrinho (imagem) como referência para nosso Movie Clip.



Detalhe importante do flash:

O plano cartesiano do flash é diferente do que costumamos aprender em nossa aulinhas de matemática em casa. Aprendemos que, o caminho positivo da reta X é da esquerda para direita e o Y é de baixo para cima. Só que no flash o Y é de cima para baixo, quer dizer, o nosso ponto (0,0) do flash é na parte superior esquerda de nosso stage.


Vamos transformá-lo em Movie Clip (F8) e instanciá-lo como "car_mc".
No primeiro frame coloque o seguinte código:

var speed=0
onEnterFrame = function(){
  
  
    if (Key.isDown(Key.UP)) {
    speed += 1;
    }
    else if (Key.isDown(Key.DOWN)) {
    speed -= .5;
    }
    else
    {
      
        if (speed>0.015){speed -= 0.015}
        else if (speed<-0.015){speed += 0.015}
        else{speed=0}
              
        }


    if (speed>=10) {speed =10}
    else if (speed<-5){    speed=-5}
  
  
    if(Math.abs(speed)>0){      
        if (Key.isDown(Key.LEFT)) {
         _root.car_mc._rotation -= 6;
        }
        if (Key.isDown(Key.RIGHT)) {
         _root.car_mc._rotation += 6;
        }
    }
 
     _root.car_mc._x += Math.sin(_root.car_mc._rotation*(Math.PI/180))*speed;
     _root.car_mc._y += Math.cos(_root.car_mc._rotation*(Math.PI/180))*speed*-1;
    
 }


Quando uso o botão para cima, a velocidade do carrinho aumenta até o limite de 10 e, quando uso a seta para baixo ele freia. Note que se você deixar de usar a seta de cima e carro naturalmente vai desacelerando até parar (Liha detalhada abaixo).

   if (Key.isDown(Key.UP)) {
    speed += 1;
    }
    else if (Key.isDown(Key.DOWN)) {
    speed -= .5;
    }
    else
    {
      
        if (speed>0.015){speed -= 0.015}
        else if (speed<-0.015){speed += 0.015}
        else{speed=0}
              
        }

Limitador da velocidade do carrinho:

if (speed>=10) {speed =10}
    else if (speed<-5){    speed=-5}


Para o carrinho fazer a curva enquanto ele possuir alguma velocidade:

    if(Math.abs(speed)>0){      
        if (Key.isDown(Key.LEFT)) {
         _root.car_mc._rotation -= 6;
        }
        if (Key.isDown(Key.RIGHT)) {
         _root.car_mc._rotation += 6;
        }
    }

E o mais chato de compreender, a direção que o carrinho anda (requer conhecimentos básicos de trigonometria):

_root.car_mc._x += Math.sin(_root.car_mc._rotation*(Math.PI/180))*speed;
_root.car_mc._y += Math.cos(_root.car_mc._rotation*(Math.PI/180))*speed*-1; // esse é negativo por causa do plano cartesiano informado no começo do artigo

Espero que divirtam-se com esse código e que gerem muitos games para a gente por aeh. Até a próxima!

Arquivos anexos ao artigo
Este artigo é a parte 1 de 2 da seguinte série:
  1. Movimento de carrinho para flash
  2. Chuva com ActionScript

Adorei a dica, espero que poste mais dicas deste tipo. Assim, nós amantes da net que não temos condições de pagar um curso avançado poderemos fazer nossos próprios jogos!!!

Valeu!!!
muito bom adorei,parabens muito simples de entender e rapido gostaria de receber e-mais assim tipo de como criar um joguinho negocio basico .muito obrigado
,.Totalmente rooox mesmo,! Para games isso é muUUy útil,!, vlw
So uma sugestão seria muito melhor se você ilustrasse a dica (janelas). Mas tá ótimo, valeu a a dica!!
Roberto
Fino d, parábens pela matéria.