mathy220 Novato
Número de Mensagens : 4 Warning : 0% Premios :
: 0
: 0
: 0
| Assunto: Inimigos Dom Mar 09, 2008 8:51 pm | |
| 1º- Inimigo comum Vamos lá pessoal para a primeira matéria, não sou muito bom com explicações mas vou tentar, vamos começar fazendo a AI de um inimigo para seu jogo, esse inimigo é aquele clássico que anda de um lado para o outro. Primeiro crie as sprites do inimigo, uma chamada " inimigo_esquerda" e outra chamada " inimigo_direita" (Sem aspas).Pois se você escrever algo errado o script vai acusar um erro e o jogo não vai funcionar corretamente, Agora, crie um bloco chamado "Wall" ou como quiser, esse bloco sera sólido e terá que ficar invisível, então nas propriedades do bloco desmarque a opção visible (para que ele não apareça no jogo ) pois ele será o bloco que fará seu inimigo bater e voltar. Agora que criamos os sprites vamos para a segunda parte, vamos criar um objeto para o inimigo, coloque o nome que quiser nele e em Create coloque esses códigos pois as variáveis vão ser ativadas no inicio do objeto, pois Create é o inicio das ações do objeto: - Código:
-
Gravi_dade = true // você pode dar o nome que quiser para a variável pa_rado = true direi_ta = true velo_cidade = 4 - Código:
-
image_speed=0.55 // você também pode mudar a velocidade, a que te agrada melhor,ele muda a velocidade dos sprites
Clique na seta virada para a direita, em Speed coloque 3 e não marque a opção Relative, agora clique em Ok. Crie um evento Step e escreva o código: - Código:
-
//AQUI VOCÊ DEFINE A GRAVIDADE if place_free(x,y+1) { gravi_dade = false gravity = 0.75 } else { gravi_dade= true gravity = 0 }
//LIMITAR VELOCIDADE DE QUEDA if (vspeed > 10) {vspeed = 10}
Já estamos no final, crie um evento colision com o Wall e escreva: - Código:
-
if sprite_index=spr_inimigo_direita { sprite_index=spr_inimigo_esquerda; } else { sprite_index=spr_inimigo_direita; }
Logo depois: - Código:
-
hspeed*=-1;//isso inverte a velocidade ao bater no Wall,( hspeed )esse código é para inverter somente na horizontal.
Agora que terminamos vamos criar o objeto chão, pois se não tiver esse objeto o seu inimigo vai cair e sumir na tela, agora crie um evento colision do inimigo com o objeto chao e escreva: - Código:
-
move_contact_solid(direction,8) vspeed = 0
2º- inimigo com IA Com esse código o inimigo ira pular quando você se aproximar dele, ele também pode ser usado para outras coisas como atirar,segir o personagem mas isso vou explicar mais abaixo. IA básico: - Código:
-
if distance_to_object(obj_player)<37 { vspeed=-14 }
IA simples: Evento Create: - Código:
-
alarm[0]=round(random(90)+90)
Alarm0: - Código:
-
//aqui o seu inimigo atira e toca o som do tiro ao obj_player se aproximar. if distance_to_object(obj_player)<150 { sound_play(tiro) instance_create(x-1,y,bala); } alarm[0]=60
Se você quiser que o inimigo faça todas as ações juntas faça o seguinte crie o mesmo código de antes, esse: - Código:
-
if distance_to_object(obj_player)<37 { vspeed=-14 }
| |
|
LucasMan Administrador
Número de Mensagens : 561 Warning : 0% Premios :
: 0
: 0
: 0 Habilidade 1 : Habilidade 2 :
| Assunto: Re: Inimigos Dom Mar 09, 2008 10:47 pm | |
| Vlw mathy ! vc ta ajudando bastante o forum com essas materias. | |
|