personagem seguir

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

personagem seguir

Mensagem por jogador_programador em Dom 11 Abr 2010, 19:54

uma duvida que eu tenho e como fazer o personagem rival lutar contra o player
por favor respondão ja caçei no forum mas eu achei mas não entendi

jogador_programador

Número de Mensagens : 146
Data de inscrição : 06/04/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por Markituh em Dom 11 Abr 2010, 20:04

Use Inteligências Artificiais. Tem uma aqui para chefes postada pelo Froidz,mas acho que também servirá em inimigos/rivais.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por jogador_programador em Dom 11 Abr 2010, 20:07

cara voce podia me add no msn ?

jogador_programador

Número de Mensagens : 146
Data de inscrição : 06/04/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por Markituh em Dom 11 Abr 2010, 20:13

Acho que não,já já meu pai chega ai vou ter que sair do computador. Mas o tutorial está bem detalhado(E eu mesmo não me dou bem com essa parada de IA Mad)

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por fonetico em Dom 11 Abr 2010, 22:30

IA não é um bicho papão de 7 cabeças, é só uma questão de programar. Eu por exemplo, crio variáveis que vão definir a ação do chefe, por exemplo, variáveis que vão decidir se ele anda ou não ou se ele pula. Aí conforme eu vou programando, só é necessario colocar alguns trues e alguns falses e já era.

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por jogador_programador em Seg 12 Abr 2010, 13:16

mas como que faz uma IA

jogador_programador

Número de Mensagens : 146
Data de inscrição : 06/04/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por Froidz em Seg 12 Abr 2010, 15:29

Bom amigo, vamos lá, tenho 15 minutos aqui, vou tentar te ensinar algo simples, é bom que você saiba manipular bem as variáveis, inclusive as variáveis x e y, ou hspeed e vspeed que são usadas para movimentar o inimigo.

Parte 1

Então vamos lá, você tem que ter em mente, que cada variávei corresponderá a uma ação, seja ela de pular, de atacar, de nadar, de voar etc, ou seja, nesse exemplo, utilizarei três ações diferentes, veja que é fácil identificá-las:

Código:
pular = false
soco = false
atirar = false
lado = 0

Veja, são três ações diferentes, isso deve ser adicionado ao evento Create. A variável lado, irá definir apenas o lado no qual o player está direcionado.

Agora, vejamos, vamos programar tais ações, com alarms, já que são três ações que serão executadas em tempos diferentes (ou ao mesmo tempo), iremos criar três alarms diferentes, vá em Add Event -> Alarms, e adicione três alarms.

Vamos começar pelo alarm0, que será o manipulador da variável pular:

Código:
if pular = true and soco = false {
vspeed = 10 //Pula caso a variável pular for true e se não estiver dando soco
}

alarm[0] = 10 //Executar alarm0 a cada 10 milisegundos (ou milésimos, sempre me confundo com isso)

O que programamos acima, é apenas o pulo, e ainda não está ativado, deverá ser ativado no evento Step (que será programado mais pra frente).

Agora no alarm1, iremos programar o soco. O soco, nada mais será que a alteração da sprite do player e a parada dele, ou seja, ele irá parar quando dar o soco, pois pense ele andando com a imagem do soco?

Então, adicione no evento Alarm1:

Código:
if soco = true {
sprite_index = spr_soco //Mudar para a sprite do soco, é necessário criar a sprite spr_soco!
hspeed = 0 //Faz ele não andar para os lados
vspeed = false //Faz com que ele não pule
}

alarm[0] = 15 //Veja a diferença do alarm anterior, isso se dá, pois o soco terá um intervalo maior que o pulo

Vamos analizar o código, o que fizemos agora, é checar se o soco é verdadeiro, e então, configuramos a ação do soco, que é mudar a sprite, e impedi-lo de andar e de pular.

Agora, vamos a última ação, que é a de atirar, a de atirar é um tanto quanto mais complexa, pois são necessárias mais linhas de códigos, mas é algo extremamente simples, até para você, que apararenta ser iniciante.

Então, adicione no evento Alarm2:

Código:
//Aqui, configuraremos o tiro
if atirar = false { //caso não estiver atirando
atirar = true //Ativar a variável

//Aqui, vamos verificar a direção do player, assim sendo, iremos configurar a direção em que a bala deverá seguir
if lado = 0 { //caso o player estiver direcionado para a direita

var tiro; //Cria uma variável temporária para definir o tiro
tiro = instance_create(x,y,obj_tiro) //Cria o obj_tiro
tiro.hspeed = -15 //Define uma velocidade e direção para o tiro

}else{ //Caso estiver no lado contrário, no caso, a esquerda

var tiro; //Cria uma variável temporária para definir o tiro
tiro = instance_create(x,y,obj_tiro) //Cria o obj_tiro
tiro.hspeed = 15 //Define uma velocidade e direção para o tiro

}

//A única diferença nos códigos acima, é que um atira para a esquerda, e, o outro, para a direita

}

alarm[2] = 5

Bom, está configurado o tiro, mas vale lembrar, que você tem que adicionar o obj_tiro, e adicionar uma sprite a ele, não é necessário adicionar configurações a ele pois isso é feito na hora do tiro.

Parte 2

Bom, até aqui tudo bem, mas vamos colocar essas ações para serem executadas?

É bem simples, primeiro o pulo, vamos ao evento Step, e adicione o seguinte código:

Código:
if distance_to_object(obj_player)<100 {//Se a distância entre o inimigo e o player for menor que 100 pixels

pular = true //Ativa o pulo
alarm[0] = 10 //E ativa o alarm0

}else{//Caso contrário

pular = false //Desativará o pulo, assim sendo, o alarm0 não fará efeito algum

}

Agora que programamos a hora em que o inimigo deverá pular, vamos fazer ele dar um soco:

Código:
if distance_to_object(obj_player)<50 {//Se a distância entre o inimigo e o player for menor que 100 pixels

soco = true //Ativar o soco
alarm[1] = 15 //Ativar o alarm1 também, que corresponde ao soco

}

E então, programaremos o tiro:

Código:
if distance_to_object(obj_player)<30 {//Caso o player estiver muito perto (30 pixels de distância)

atirar = true //Ativar o tiro
alarm[2] = 5 //Ativa o alarm2

}

Bom, vamos analizar o que foi feito:
Todo o código postado no evento Step, serve para ativar as ações programadas nos alarms, pois não adianta você adicionar o código no alarm, ele só será executado caso o alarm for chamado, foi o que fizemos no evento Step.

-Mas por que no evento Step?

Pois, ele e o Draw são executados a todo momento.
Vale lembrar, que o obj_player tem que ser criado para ser usado, caso você tenha um player com nome diferente do aqui postado, é só modificar o código e adicionar o nome correto do objeto que você usa como player.

Agora, também no evento Step, adicione o seguinte código para verificar o lado no qual o player está posicionado:

Código:
if keyboard_check_released(vk_left) {//Caso ter soltado a tecla com seta direcional para esquerda

lado = 1 //Mudar valor da variável para 1

}


if keyboard_check_released(vk_right) {//Caso ter soltado a tecla com seta direcional para direita

lado = 0 //Mudar valor da variável para 0

}

Bom, agora que já configuramos a direção, é só você adicionar o código ao jogo e testá-lo, vale lembrar também, que eu não testei o código, fiz de cabeça, está quase certo que funcione, mas qualquer problema, avise-me.

Você, como eu e como qualquer um outro, pode se confundir com o 1 e o 0 da variável lado, eu sempre me confundo, nunca sei se 1 ou 0 é para direita, uma boa dica, é você tornar essa variável uma string, ou seja, adicionar aspas e colocar algo entre elas, para identificar o lado, veja um exemplo no evento create:

Código:
lado = "direita"

Assim, é muito mais fácil identificar o lado que o player está.
Valeu! o/

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por Froidz em Qua 14 Abr 2010, 06:30

Desculpem o duplo post, mas a minha ajuda foi inútil ? o.o

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por Markituh em Qua 14 Abr 2010, 07:30

Não é que sua ajuda foi inútil,é que o cara ainda não entrou no fórum Happy

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por jogador_programador em Qui 15 Abr 2010, 10:44

deu certo a tds obriagado por terem postado para resolver a duvida

jogador_programador

Número de Mensagens : 146
Data de inscrição : 06/04/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por jogador_programador em Qui 15 Abr 2010, 10:45

topico fechado

jogador_programador

Número de Mensagens : 146
Data de inscrição : 06/04/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: personagem seguir

Mensagem por Conteúdo patrocinado Hoje à(s) 02:42


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum