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

Participe do fórum, é rápido e fácil

Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!
Fusion Makers
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Últimos assuntos
» Ideia: MMFMakers, do zero
por 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?
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 registrados
O último membro registrado é Sitydistta

Os nossos membros postaram um total de 5268 mensagens em 575 assuntos

IA de um inimigo - Parte 2

Ir para baixo

IA de um inimigo - Parte 2 Empty IA de um inimigo - Parte 2

Mensagem por FireSoul Sáb 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 : 27

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos