SIGI: Idiota! Ele não sabe onde vc está!
Pipolho: EEINN???
Olá criaturas!! Resolvi abordar um tema que causa muita dor de cabeça na maioria dos iniciantes. A maldita da IA... pq é tão difícil fazer com que os objetos possam "pensar" dentro dos seus jogos? A resposta para essa e outras perguntas vc descobre aqui... ou na novela das 8.
Nome: IA: O INIMIGO PENSANTE
Descrição: Vamos ensinar os inimigos dos nossos jogos a interagir com nossos players!
Nível de dificuldade: Iniciante/semi-mediano
Requerimentos: GM 6/7/8 - Pro/Lite
IA? Isso é alguma nova doença?
IA nada mais é, do que uma Inteligência Artificial. Eu sei, o bonzão... vc já sabia disso. Mas você sabe interpretar isso?
Para que haja inteligência, é necessário que exista conhecimento, ou seja, para que nosso inimigo tenha uma IA, ele deve "aprender" a atacar o player.
E sendo uma inteligência artifical, nós é que temos que ensinar a ele. Ele não pode aprender sozinho... oohh..... ¬¬"
Pipolho: Que inimigo burro.... os outros é quem tem q ensinar as coisas pra ele! xD
SIGI: Você não sabe nem soletrar seu nome, então fique calado...
Sendo assim, vamos começar a elaborar uma IA bem simples, para que vocês comecem a entender como isso funciona!
Acredito que vcs saibam criar uma engine de plataforma simples... se souberem, continuem lendo. Se não souberem... Bem vindos ao GM!! \0/ \0/ Parem de ler isso e vão ler as aulas do RedDragon!
Crie uma engine rápida de plataforma, apenas o chão é necessário.Crie as sprites para o inimigo e para o player. E crie tbm os objetos: o player, e é claro, um inimigo. Nesse caso, nosso inimigo irá perseguir nosso player. Isso pode ser mais fácil do que você imagina...
Coloque no STEP de nosso amigo inimigo ( Eeinn?? O_o ), o seguinte código:
Código: Selecionar todos
if player.x+50<x
x-=4
if player.x-50>x
x+=4
Pipolho: Sigi, seu paspalho... até eu sei fazer isso!!!
SIGI: Não sabe nao... ¬¬
Pipolho: ....... mas tenho certeza de que deve ser fácil... u.u
Como deve ter percebido, esse código fará com que o inimigo siga o player horizontalmente... dãa.... (se não tinha percebido isso, LEIA AS AULAS DO REDDRAGON!!)
Mas... o que significa aquele 50?
Esse 50 fará com que o inimigo pare ao se aproximar do player,evitando que ele fique "dançando" em cima dele... rsrs
Isso dará mais realismo ao seu inimigo, assim vc pode inclusive criar um ataque corpo-a-corpo, dessa forma:
Código: Selecionar todos
if player.x+50>x and player.x-50<x
atacar=true
Mto bem,nosso inimigo já corre atrás do player. Mas....
O inimigo não pode correr atrás do player se estiver bem distante dele...
O senhor Senon Barriga e Pesado apenas persegue o seu Madruga quando está perto dele,não é msm? Então vamos acrescentar ao nosso código,numa linha antes dele, o seguinte:
Código: Selecionar todos
if player.x+500>x and player.x-500<x
{
Código: Selecionar todos
}
Pipolho: Mark Overmars criou a função "distance to object", sabia??
SIGI: Silent!! I kill you!!
Bem, como Pipolho disse, eu poderia ter usado a função distance_to_object.
Mas como se trata da distância horizontal, eu resolvi colocar desse jeito... e eu acho q é mais prático tbm
Ou seja, o inimigo só irá perseguir o player se ele estiver a menos de 500 pixels de distância. Vc pode alterar esse valor pra expandir o campo de visão do inimigo.
Legal... nosso inimigo já "sabe" perseguir o player! Mas quero mais.... quero mais!!
Já que essa é uma engine de plataformas, imagino que seu player possa pular, correto? Então nada mais justo do que o nosso inimigo poder pular tbm! =D
Pipolho: E se o inimigo for manco? o_o
SIGI: Quem liga? Super Mario jamais poderia pular tão alto. Ninguem pula tão alto!
Precisamos fazer com que o inimigo saiba quando deve pular.
E isso é ridiculamente simples!! Em seu STEP, coloque:
Código: Selecionar todos
if player.y+50<y
{
if estiver no chao
vspeed=-8
}
Viu só?? Quando o inimigo estiver no chão e o player estiver mais alto que ele, o inimigo irá pular para alcança-lo! Simples demais!!
E claro que ainda existem mtas coisas a serem introduzidas, mas essa é apenas uma introdução pra vc começar a entender como funciona uma IA.
Pipolho: Mas eu quero que o inimigo possa se esconder atrás das caixas,para pegar o player de surpresa, e matá-lo se o player estiver assustado!!
SIGI: ...... Vá ler as aulas do RedDragon!!!
É isso aeew gente... DIGAM NÃO A INFANTILIDADE!!
Se estão no forum, o ajude a crescer!!