Entrar
Tópicos semelhantes
Procurar
Últimos assuntos
» Ideia: MMFMakers, do zeropor mediamaker Qua 26 maio 2021, 12:28
» [Flash] Haunt the house
por mediamaker Sáb 19 Set 2020, 16:47
» Como a criar passo a passo engine de Movimento Grid com colisão (tipo Bomberman) completo usadno extensão Array?
por mediamaker Sex 15 Set 2017, 14:19
» CF2.5 -> 26 reais na steam
por Matheus290 Ter 22 Dez 2015, 17:52
» Aplicação com Editbox não tá rodando online
por Matheus290 Sáb 19 Set 2015, 01:38
» A Guilda continua!!!! "Âncora Team" (novo nome)
por weliowl7 Qua 16 Set 2015, 01:52
» Sub-application e Inventario
por majorcorps Dom 23 Ago 2015, 13:11
» Efeito de string
por majorcorps Sáb 22 Ago 2015, 19:55
» [PC] Pitiri 1997
por Matheus290 Sáb 20 Jun 2015, 17:10
» Teclado virtual com Edit Box
por mediamaker Sáb 20 Jun 2015, 14:10
Quem está conectado?
Há 4 usuários online :: 0 registrados, 0 invisíveis e 4 visitantes Nenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 251 em Ter 26 Out 2021, 22:21
Estatísticas
Temos 256 usuários registradosO último membro registrado é Sitydistta
Os nossos membros postaram um total de 5268 mensagens em 575 assuntos
IA de um inimigo - Parte 2
Fusion Makers :: Geral :: Matérias :: Intermediário
Página 1 de 1
IA de um inimigo - Parte 2
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:
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:
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:
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:
Delete-o. Vamos separar o evento e por mais alguns:
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.
Agora os loops:
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
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
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
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 : 27
Tópicos semelhantes
» Phizix Parte 1
» IA de um inimigo - parte 1 (tutorial por Hazael)
» Como fazer que o Sonic destrua um inimigo com animação Falling e Jumping
» IA de um inimigo - parte 1 (tutorial por Hazael)
» Como fazer que o Sonic destrua um inimigo com animação Falling e Jumping
Fusion Makers :: Geral :: Matérias :: Intermediário
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|