1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Action Script

Discussão em 'Programação' iniciada por DreamOn, 13 de Abril de 2008. (Respostas: 2; Visualizações: 549)

  1. DreamOn

    DreamOn Folding Member

    Estou aqui com uns problemas em action script para um projecto em flash. O meu objectivo é fazer com que uma bola ao bater num obstaculo volte para tras. Porem quando ela bate lá vem apenas um bocadinho para trás e volta a subir, não voltando ao ponto de inicio.

    if (!bola_mc.hitTest(obstaculo_mc))
    {
    nextPosY = bola_mc._y;
    if (obstaculo_mc.hitTest(nextPosY + bola_mc._width, obstaculo_mc._y, false))
    nextPosY = bola_mc._Y - 15;
    }
    else
    nextPosY = bola_mc._Y + 15;

    }

    Gracias :)
     
  2. andrepadez

    andrepadez Power Member

    Não percebo muito de Action Script, mas segundo a análise que fiz, talvez passe por aqui:

    Calculo que este código que puseste esteja dentro de uma estrutura de iteração; (caso eu esteja errado, ignora a resposta)

    * Ao testares com o if se a bola bate na parede (teste instancial), apenas fazes com que a posiçãoY desta decresça 15 un.
    * Assim, na próxima iteração do for, ou do while, esta já não está a bater na parede e volta a ser implementada a incrementação (Y+15) inicial.

    * Penso que a solução seja implementares um método (SentidoY) inteiro (+1 para cima, 0 para mudança de sentido, -1 para baixo) dentro da classe em que estás a criar o objecto bola, de modo a que consigas testá-lo a cada iteração, e usares essa condição para definir o incremento (+15 ou - 15).

    Qd puderes diz-me se isto te serviu de alguma coisa, sff.
     
  3. DreamOn

    DreamOn Folding Member

    Acabei por conseguir :)

    Fiz algo do género..

    subida = true;

    if (subida==true){
    verifica se bate;
    quando bater faz subida = false;
    }
     

Partilhar esta Página