Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!
Conectar-se

Esqueci minha senha

Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
3 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 3 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 65 em Sex 01 Abr 2016, 22:48
Estatísticas
Temos 255 usuários registrados
O último usuário registrado atende pelo nome de LuckN

Os nossos membros postaram um total de 5264 mensagens em 574 assuntos

IA de um inimigo - Parte 2

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

IA de um inimigo - Parte 2

Mensagem por FireSoul em Sab 20 Fev 2010, 20:41

Nível: Médio [|||--]

Essa é a continuação do tuto anterior. Agora eu vou ensinar como fazer o inimigo atacar o herói com um ataque tipo um dash.

Você vai precisar de:
3 alterable values
1 active pra ser o inimigo
Backdrops
1 active pra ser o herói


Você precisa entender:
Movimento custom
Hot spot
Fast loops
Collision masks


Primeiro, faça o evento de quando o personagem chegar perto pela esquerda, ele atacar :stab:

Código:
X position of "herói" > X "inimigo"-59 >> Set Alterable value A "inimigo" to -12

Mas Hazael, porque -59 e -12?
Simples! Lembra que no tutorial anterior eu disse que meu personagem tinha um hotspot nos 9 de largura e a largura total era 18? Sobra 9 pra cada lado. O -59 é assim: sobra 9 pixels de cada lado, como disse antes, então ele vai ter um campo de visão de 50 pixels. Como está negativo, será 50 pixels de visão para a esquerda. O -12 é pra ele dar um ataque bem rápido, se for muito lento o herói escapa fácil fácil. Quanto maior o valor, maior a velocidade do dash, só que pode dar bug se botar um valor muito alto.

Eba, ele já ataca! Mas espere! Há um pequeno problema... Ele não diminui a velocidade, ele fica com velocidade de 12 pixels... Tudo bem, então vamos arrumar isso aqui:

Código:
Alterable value A of "inimigo" < -1 >> Add 1 to alterable value A "inimigo"

Porque se for menor que -1?
Estou me baseando no tutorial anterior, em que a velocidade pra direita era +1 e pra esquerda é -1. Se tiver em menor que -1 significa que está acima da velocidade normal, então esse evento faz com que a velocidade do dash diminua até voltar a velocidade normal dele.

Repetindo os eventos, mas agora ao contrário, para quando o herói chegar pela direita:

Código:
X position of "herói" < X "inimigo"+59 >> Set Alterable value A "inimigo" to 12
Código:
Alterable value A of "inimigo" > 1 >> Sub 1 to alterable value A "inimigo"

Pra mim perecem iguais aos de cima.
Mas não são! Note que existem algumas diferenças, como -59 agora é +59. Claro que não só isso, outras coisas também inverteram.

Terminamos!

Vixi, deu bug! Quando ele ataca bem perto da parede ele sobe!
Esse erro é causado pelo fast loop... Vamos arrumar isso!

No tutorial anterior tinha um evento assim:

Código:
"inimigo" is overlapping a backdrop >> Set alterable value C "inimigo" to 0
                             Set alterable value B "inimigo" to 0
                             Start loop "1" 50 times

Delete-o. Vamos separar o evento e por mais alguns:

Código:
"inimigo" is overlapping a backdrop >> Set alterable value C "inimigo" to 0
                             Set alterable value B "inimigo" to 0
Código:
"inimigo" is overlapping a backdrop >> Start loop "1" 50 times
+ Alterable Value A of "inimigo" < 2
+ Alterable Value A of "inimigo" > -2

Separamos em 2 eventos e agora vamos adicionar mais dois. Mas espere. Antes de fazer isso, temos mais uma checagem de hotspot. O meu inimigo tem 18 pixels e o hotspot está no meio, então sobram 9 pixels pra cada lado.

Código:
X "inimigo" + 9,Y "inimigo" is an obstacle >> Start loop "direita"
Código:
X "inimigo" - 9,Y "inimigo" is an obstacle >> Start loop "esquerda"

Agora os loops:
Código:
On loop "direita" >> Set X "inimigo" to X "inimigo" - 1
+ X "inimigo" + 9,Y "inimigo" is an obstacle
Código:
On loop "esquerda" >> Set X "inimigo" to X "inimigo" + 1
+ X "inimigo" - 9,Y "inimigo" is an obstacle

Agora melhorou!
Pois é, nosso tuto acaba aqui. No próximo vou ensinar a fazer ataques aleatórios (dash e atirar).

Até o próximo tuto Razz

Se usar já sabe né? Créditos a Hazael (eu), Silas, Skilo, Alves e Matheus290.

Hazael - Matéria
Silas - Collision masks
Skilo - Tutorial de movimento custom
Alves - Fast loops
Matheus290 - Engine de movimento custom

FireSoul
Usuário

Mensagens : 3
Data de inscrição : 20/02/2010
Idade : 20

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum