Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
personagem seguir
4 participantes
Página 1 de 1
personagem seguir
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
por favor respondão ja caçei no forum mas eu achei mas não entendi
jogador_programador- Data de inscrição : 06/04/2010
Reputação : 0
Número de Mensagens : 146
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
Use Inteligências Artificiais. Tem uma aqui para chefes postada pelo Froidz,mas acho que também servirá em inimigos/rivais.
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
cara voce podia me add no msn ?
jogador_programador- Data de inscrição : 06/04/2010
Reputação : 0
Número de Mensagens : 146
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
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 )
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
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- Data de inscrição : 05/10/2009
Reputação : 7
Número de Mensagens : 1830
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
mas como que faz uma IA
jogador_programador- Data de inscrição : 06/04/2010
Reputação : 0
Número de Mensagens : 146
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
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:
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:
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:
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:
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:
Agora que programamos a hora em que o inimigo deverá pular, vamos fazer ele dar um soco:
E então, programaremos o tiro:
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:
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:
Assim, é muito mais fácil identificar o lado que o player está.
Valeu! o/
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- Data de inscrição : 03/08/2008
Reputação : 4
Número de Mensagens : 1053
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
Desculpem o duplo post, mas a minha ajuda foi inútil ? o.o
Froidz- Data de inscrição : 03/08/2008
Reputação : 4
Número de Mensagens : 1053
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
Não é que sua ajuda foi inútil,é que o cara ainda não entrou no fórum
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
deu certo a tds obriagado por terem postado para resolver a duvida
jogador_programador- Data de inscrição : 06/04/2010
Reputação : 0
Número de Mensagens : 146
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: personagem seguir
topico fechado
jogador_programador- Data de inscrição : 06/04/2010
Reputação : 0
Número de Mensagens : 146
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos