Você está na página 1de 6

IA

Autor: Gavio dos Games


Nvel: Basico/Intermdio

Introduo:

Ol hoje vou mostrar como fazer um simples exemplo de inteligencia artificial.


O que voc fara:
Voc tera uma galinha que ira ter que pegar seis sementes, mas ela s podera carregar uma semente
por vez ento ela ira pegar uma semente e voltar para sua area para guardar e depois repetri o ciclo at
ela completar seis sementes.

Sprites:
Fui eu que fiz =) por isso ta zuadinho mais serve n?
SPRITES PARA ENGINE (Perdido, usem outros sprites quaisquer)
Nomeie as sprites da seguinte forma para a engine no sair errada:
Galinha
Gooby Parada ==> spr_parado
Gooby Andando ==> spr_andando
Gooby Voltando ==> spr_voltando
Outros
Area ==> spr_area
Detector ==> spr_det
Semente ==> spr_semente
Objetos:
Vo ser 6 objetos anote o nomes dele para a engine no sair errado:
obj_galinha ==> Sprite:Gobby Parada;
obj_area ==> Sprite: Area;
obj_semente ==> Sprite: Semente;
obj_det ==> Sprite: Detector;
obj_cria_instancias ==> Sem Sprite;
obj_draw ==> Sem Sprite.
Fonts:
Voc deve nomea-la de font e configura-la assim :
Font: Comics Sans MS.
Size: 10.

Room:
S usaremos uma room o tamanho dela ser de 240x180
Posicione seus objetos assim:

O mais importante a posio que ficara o "obj_area".Os outros voc pode espalhar, pois iremos
posiciona-los com GML.
Progamando

obj_galinha
Evento Create: (Variveis,velocidade da animao e posio inicial).
CDIGO:

//Variveis principais:
global.sementes = 0;
semente_na_mao = false;
movendo = true;
//Comea nessa posio:
x = (177+5);
y = (75+7);
//Velocidade inicial da animao:
image_speed = 0.2;
//Comeara com essa animao:
sprite_index = spr_parado;

Evento Step: (Indo pegar as sementes).


CDIGO:

//Pegar a semente 1:
if (global.sementes == 0 && semente_na_mao = false) then {
move_towards_point(32,(65+7),3);
}

//Pegar a semente 2:
if (global.sementes == 1 && semente_na_mao = false) then {
move_towards_point(13,(18+7),3);
}
//Pegar a semente 3:
if (global.sementes == 2 && semente_na_mao = false) then {
move_towards_point(16,(95+7),3);
}
//Pegar a semente 4:
if (global.sementes == 3 && semente_na_mao = false) then {
move_towards_point(80,(32+7),3);
}
//Pegar a semente 5:
if (global.sementes == 4 && semente_na_mao = false) then {
move_towards_point(19,(56+7),3);
}
//Pegar a semente 6:
if (global.sementes == 5 && semente_na_mao = false) then {
move_towards_point(109,(14+7),3);
}

Perceba que a galinha no foi pegar a semente e sim foi em direo a sua coordenada.
Evento Step: (Voltando para guardar a semente ja pega).
CDIGO:

//Voltar assim que pegar uma semente:


if (semente_na_mao = true){
move_towards_point((177+5),(75+7),obj_det)
}

Evento End Step: (Animaes de Gooby).


CDIGO:

//Voltando:
if (semente_na_mao = true and movendo = true) {
sprite_index = spr_voltando;
image_speed = 0.2;
}
//Andando:
if (semente_na_mao = false and movendo = true) {
sprite_index = spr_andando;

image_speed = 0.2;
}
//Comemorando:
if (global.sementes = 6 and movendo = false){
sprite_index = spr_comemorando;
image_speed = 0.3;
}

Evento Alarm 0: (Adiciona as sementes no seu contador e Destroy as instancias do "obj_semente").


CDIGO:

//Adiciona 1 na varivel global sementes:


global.sementes = global.sementes + 1;
//Destroy a instancia do objeto das sementes
instance_destroy();

Evento Alarm 1: (Se voc consseguiu todas as sementes parar).


CDIGO:

//Parar se voc ja consseguiu todas as 6 sementes:


if global.sementes = 6 then {
movendo = false;
hspeed = 0;
vspeed = 0;
}

Evento Colidir com obj_semente: (Ficar com a semente na mo e execultar o alarme [((Zero))]).
CDIGO:

//Gooby est com a semente na mo:


semente_na_mao = true;
//Execultar o alarme [0]:
alarm[0] = 2;

Evento Colidir com obj_det: (Gooby esta sem semente na mo e execulta o alarme [1]).
CDIGO:

//Gooby no tem sementes na mo:


semente_na_mao = false;

//Execultar o alarme [1]:


alarm[1] = 1;

obj_det
Evento Create: (Posiciona o (obj_det)).
CDIGO:

x = 177;
y = 75;

obj_cria_instancias
Evento Create: (Criar uma instancia assim que comear a engine).
CDIGO:

//Comea criando uma isntancia do "obj_semente" na posio


x.35,y.65:
instance_create(32,65,obj_semente);

Evento Step: (Cria instancias do "obj_semente").


CDIGO:

//Cria em determinadas poisies conforme o nmero de sementes


que voc ja tem,
//por exemplo se vc ja tem a semente um cria a semente dois em
outra posio;
//Voc pode modificar a posio conforme o tamnho da sua room
no meu caso eu estou limitado a x.240, y.128:
if global.sementes = 1 {
instance_create(13,18,obj_semente)
}
if global.sementes = 2 {
instance_create(16,95,obj_semente)
}
if global.sementes = 3 {
instance_create(80,32,obj_semente)
}
if global.sementes = 4 {

instance_create(19,56,obj_semente)
}
if global.sementes = 5 {
instance_create(109,14,obj_semente)
}

obj_draw
Evento Draw: (Escreve quantas sementes gooby tem).
CDIGO:

//Escreve quantas sementes Gooby j tem:


draw_set_font(font);
draw_set_color(c_red);
texto = "Sementes :"
draw_text(6,4,texto)
texto2 = global.sementes
draw_text(6*14,4,texto2)

Você também pode gostar