Meu primeiro topico hehe *-*
Bom, nesse topico vou postar um codigo completo e muito basico de um HitTest e explicar cada função.
Estou fazendo um jogo, e precisava colocar paredes pro char não passar, me matei pra conseguir...pesquisei por mais de 1 dia rsrs....até que finalmente eu bolei todo o codigo com base no que li. Sou novato na area de script pra flash mas...vamo la né^^...
O codigo é esse:
LEIA COM ATENÇÃO:
Agora, vou explicar parte por parte do codigo, coloquei inteiro la em cima pra não se confundirem.
Essa parte inicia as funções. Digamos que é LEI ter isso antes de todos os outros codigos.
Esses vão fazer você andar com as setas do teclado...O numero 10 é a velocidade em que o objeto (o char) vai se mover na tela. X é o eixo HORIZONTAL e o y VERTICAL.
Aqui é onde você vai colocar o total de barreiras que tem no seu mapa/cenario. No meu caso coloquei 50.
E a parte final:
Tem 4 Ifs, cada um testa uma seta do teclado, pra cima, baixo e lados. Não precisa mudar nada ali pois é um laço que faz praticamente tudo (for). As 3 chaves no final fecham todas as outras que estavam ainda em abertas desde o começo dos codigos.
O HitTest nesse caso, vai ter o seguinte pensamento:
Se tecla e player encostarem no objeto "barreira" então o player não vai passar. Se você colocar o player._x-9 ou inferior ao 10 vai dar pra passar, então aconselho deixar em 10!.
E por ultimo, vou mostrar abaixo o que cada nome significa nos comandos que eu editei.
No final o que me ajudou MUITO MESMO foi desse topico: http://www.mxstudio.com.br/forum/index.php?showtopic=57833 .
Abraços a todos e espero que tenha ajudado. Duvidas não é comigo rsrs, mas seu eu souber responder...Dai eu respondo xD.
Bom, nesse topico vou postar um codigo completo e muito basico de um HitTest e explicar cada função.
Estou fazendo um jogo, e precisava colocar paredes pro char não passar, me matei pra conseguir...pesquisei por mais de 1 dia rsrs....até que finalmente eu bolei todo o codigo com base no que li. Sou novato na area de script pra flash mas...vamo la né^^...
O codigo é esse:
QUOTE
fscommand2("fullscreen",true); //Começa o comando
player.onEnterFrame = function()
//Entrada da "chaves" para começar o IF
{
//Abaixo: Comandos de IF para utilização das setas do teclado.
if (Key.isDown(Key.RIGHT))
player._x+=10;
else if (Key.isDown(Key.LEFT))
player._x-=10;
else if (Key.isDown(Key.UP))
player._y-=10;
else if (Key.isDown(Key.DOWN))
player._y+=10;
// Colocamos essa variável para controlar o total de paredes que voce vai ter
total_barreiras = 10;
// Agora criaremos uma função em loop para estabelecer a mesma função para o hitTest em todas as paredes.
for (i=1; i<=total_barreiras; i++ ) {
if ((Key.isDown(Key.RIGHT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x-10;
}
if ((Key.isDown(Key.LEFT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x+10;
}
if ((Key.isDown(Key.UP)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y+10;
}
if ((Key.isDown(Key.DOWN)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y-10;
}}}
player.onEnterFrame = function()
//Entrada da "chaves" para começar o IF
{
//Abaixo: Comandos de IF para utilização das setas do teclado.
if (Key.isDown(Key.RIGHT))
player._x+=10;
else if (Key.isDown(Key.LEFT))
player._x-=10;
else if (Key.isDown(Key.UP))
player._y-=10;
else if (Key.isDown(Key.DOWN))
player._y+=10;
// Colocamos essa variável para controlar o total de paredes que voce vai ter
total_barreiras = 10;
// Agora criaremos uma função em loop para estabelecer a mesma função para o hitTest em todas as paredes.
for (i=1; i<=total_barreiras; i++ ) {
if ((Key.isDown(Key.RIGHT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x-10;
}
if ((Key.isDown(Key.LEFT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x+10;
}
if ((Key.isDown(Key.UP)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y+10;
}
if ((Key.isDown(Key.DOWN)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y-10;
}}}
LEIA COM ATENÇÃO:
QUOTE
Galera, primeiro de tudo, para que o HitTest funcione, você precisa criar suas barreiras/paredes.
Vou dar um exemplo de 4 paredes:
Crie 4 paredes sejam quadradas ou apenas traços e coloque uma bolinha em volta. Transforme cada um desses objetos em CLIPE DE FILME (apertando F8).
Em seguida vá em propriedades de cada uma das PAREDES e coloque em instância: barreira1...na segunda: barreira2 e por ai vai... até a 4 neste caso. Em seguida clique na bolinha e nomeie também em propriedades de player (igual nos codigos acima). Assim quando os codigos forem procurar as variaveis, vão ser iguais as que você acabou de criar e nomear. O barreira 1...barreira 2...barreira 3.....vai servir no final do codigo, quando acresentar um numero no final. Assim fazendo com que todas as barreiras funcionem normalmente. Não se incuque com isso, é só uma explicação.
Vou dar um exemplo de 4 paredes:
Crie 4 paredes sejam quadradas ou apenas traços e coloque uma bolinha em volta. Transforme cada um desses objetos em CLIPE DE FILME (apertando F8).
Em seguida vá em propriedades de cada uma das PAREDES e coloque em instância: barreira1...na segunda: barreira2 e por ai vai... até a 4 neste caso. Em seguida clique na bolinha e nomeie também em propriedades de player (igual nos codigos acima). Assim quando os codigos forem procurar as variaveis, vão ser iguais as que você acabou de criar e nomear. O barreira 1...barreira 2...barreira 3.....vai servir no final do codigo, quando acresentar um numero no final. Assim fazendo com que todas as barreiras funcionem normalmente. Não se incuque com isso, é só uma explicação.
Agora, vou explicar parte por parte do codigo, coloquei inteiro la em cima pra não se confundirem.
Essa parte inicia as funções. Digamos que é LEI ter isso antes de todos os outros codigos.
QUOTE
fscommand2("fullscreen",true);
player.onEnterFrame = function()
{
player.onEnterFrame = function()
{
Esses vão fazer você andar com as setas do teclado...O numero 10 é a velocidade em que o objeto (o char) vai se mover na tela. X é o eixo HORIZONTAL e o y VERTICAL.
QUOTE
if (Key.isDown(Key.RIGHT))
player._x+=10;
else if (Key.isDown(Key.LEFT))
player._x-=10;
else if (Key.isDown(Key.UP))
player._y-=10;
else if (Key.isDown(Key.DOWN))
player._y+=10;
player._x+=10;
else if (Key.isDown(Key.LEFT))
player._x-=10;
else if (Key.isDown(Key.UP))
player._y-=10;
else if (Key.isDown(Key.DOWN))
player._y+=10;
Aqui é onde você vai colocar o total de barreiras que tem no seu mapa/cenario. No meu caso coloquei 50.
QUOTE
total_barreiras = 50;
E a parte final:
Tem 4 Ifs, cada um testa uma seta do teclado, pra cima, baixo e lados. Não precisa mudar nada ali pois é um laço que faz praticamente tudo (for). As 3 chaves no final fecham todas as outras que estavam ainda em abertas desde o começo dos codigos.
O HitTest nesse caso, vai ter o seguinte pensamento:
Se tecla e player encostarem no objeto "barreira" então o player não vai passar. Se você colocar o player._x-9 ou inferior ao 10 vai dar pra passar, então aconselho deixar em 10!.
QUOTE
for (i=1; i<=total_barreiras; i++ ) {
if ((Key.isDown(Key.RIGHT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x-10;
}
if ((Key.isDown(Key.LEFT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x+10;
}
if ((Key.isDown(Key.UP)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y+10;
}
if ((Key.isDown(Key.DOWN)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y-10;
}}}
if ((Key.isDown(Key.RIGHT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x-10;
}
if ((Key.isDown(Key.LEFT)) & (player.hitTest(_root["barreira"+i]))){
player._x=player._x+10;
}
if ((Key.isDown(Key.UP)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y+10;
}
if ((Key.isDown(Key.DOWN)) & (player.hitTest(_root["barreira"+i]))){
player._y=player._y-10;
}}}
E por ultimo, vou mostrar abaixo o que cada nome significa nos comandos que eu editei.
QUOTE
player: o personagem/bolinha/quadrado ou qual quer coisa que você vai usar pra se mover com as setinhas.
total_barreiras: é o numero de barreiras/paredes que você tem no seu mapa.
total_barreiras: é o numero de barreiras/paredes que você tem no seu mapa.
No final o que me ajudou MUITO MESMO foi desse topico: http://www.mxstudio.com.br/forum/index.php?showtopic=57833 .
Abraços a todos e espero que tenha ajudado. Duvidas não é comigo rsrs, mas seu eu souber responder...Dai eu respondo xD.
malz os erros de pt rs...

Help














