Comentário: Prepare-se , pois o comando hitTest é um pé-no-saco , mesmo que você já tenha aprendido um pouco de flash!
Como você pode ver, agora eu posso mover o herói de um jeito engraçado . Agora, é hora de introduzir alguns obstáculos (mortais).Os bounds
Cada área do jogo tem paredes, assim que eu criei um movieclip chamado "bounds" e botei com instance ''wall''. Meu hero não pode tocar em nenhuma parede , assim , o actionscript será:
[code ( é mais curto que código ¬¬ ) ]
O que aconteceu? Eu adicionei as linhas 28 a 33 , vamos ver como elas funcionam. Linha 28: Eu executo um teste da colisão entre o herói e o movieclip chamado "wall". _ o x e _ y significa que eu estou verificando a colisão somente _ no x e _ os atributos de y do herói - seu centro -
Por que eu estou fazendo desta maneira? Porque eu penso que o jogo seria frustrante se eu verificasse a colisão entre qualque pixel do herói e a parede. Além disso, quanto menor a área da colisão (1 pixel no caso), mais complicadas e criativas serão as paredes que você pode fazer para o jogador se mover dentro. As linhas de 29 a 32 simplesmente ''reiniciam'' a posição do hero quando ele morre.
[flash]
A Moeda(Coin) - 1 tentativa
Agora eu quero que o hero possa coletar moedas ou coisas parecidas, então eu criei um movieclip novo com nome e instance ''coin'' . O actionscript novo é:
[code]
Olhe as linhas 34-36. A linha 34 faz basicamente o mesmo teste de colisão que eu fiz para as paredes, a linha 35 simplesmente move a moeda para uma outra posição uma vez que você a coleta. Ótimo. Tente agora pegar a moeda.
[flash]
Parece difícil e bugado, não é ? Isso porque eu estou executando o teste de colisão somente com o centro do hero , ou seja , somente com um pixel. Enquanto este método era bom para os limites, é horrível para objetos.
A Moeda - 2 tentativa
Vou tentar uma aproximação diferente , trocando a linha 34 por
[code]
Eu expandi a colisão com a moeda para o hero inteiro.
Tente pegar a moeda agora...
[flash]
Agora é muito fácil!! Você pode pegar as moedas só de ficar perto delas. Por que? Porque o flash executa esse teste de colisão baseado em uma forma retangular construída em torno da forma do hero. Imagine um quadrado no lugar da bola ( o hero ). Tudo em que você colide seria exatamente igual à colisão com a bola . Enquanto a primeira tentativa era difícil e bugada , essa é fácil e bugada.
A Moeda - 3 tentativa
Está pronto pra desistir? Não? Bem, eu tenho a solução . Crie um movieclip novo chamado "hero_hit" e coloque o movieclip no hero , bem no meio dele. É o pequeno quadrado azul que você observa no flash abaixo. Faça agora o teste de colisão no movieclip do hero_hit em vez do hero. Você obviamente pode mudar o tamanho do hero_hit de acordo com o modo que você quer criar seu jogo. Quanto menor o tamanho, mais difícil pegar as moedas. O actionscript final é:
[code]
Como você pode notar , a linha 34 checa a colisão entre o hero_hit e a coin
[flash]
E aqui termina a segunda parte...
Nenhum comentário:
Postar um comentário