Conectar-se

Esqueci minha senha

Últimos assuntos
» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

» Tipo de Draw que dê melhor fps...
Sex 21 Ago 2015, 12:25 por Pai véi

» Banco de Dados online fácil de configurar
Sex 21 Ago 2015, 11:47 por Pai véi

» Ficou estranho esse efeito na terra?
Qua 19 Ago 2015, 20:08 por Adriel

» Você consegue decifrar o que é isso?
Qua 19 Ago 2015, 15:48 por Mateus O de Andrade

» Texto centralizado em sprite 64x64
Qua 19 Ago 2015, 14:00 por Vandson Fernandes

» [Tutorial] Um Único Script para Todos Diálogos do Jogo
Ter 18 Ago 2015, 22:12 por dharrison

» VIDEO AULAS - Plataforma - Recriando Super Mario
Ter 18 Ago 2015, 20:44 por Adriel

» Ajuda deixar room maior
Ter 18 Ago 2015, 15:56 por Stickman

» OST - Rain From The Past (Para Main Themes)
Seg 17 Ago 2015, 23:00 por Jessezyn

» #DGM Aula 01 - Views
Seg 17 Ago 2015, 00:16 por victor13.

» Alguém sabe as dimensões de um galaxy s5?
Dom 16 Ago 2015, 20:06 por vitorfernandes13

» Conquer The Kingdom
Dom 16 Ago 2015, 12:13 por DVictorPS

» [Ajuda] Bug ds_list
Dom 16 Ago 2015, 08:27 por Witen

» câmera seguir player com touch control android
Sab 15 Ago 2015, 15:05 por Lighter

» Apk não roda no celular
Sab 15 Ago 2015, 12:10 por xLuiZzz


Invalidar "distance_to_object"

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

Invalidar "distance_to_object"

Mensagem por RafaleCP em Seg 15 Jul 2013, 21:45

Olá pessoal, minha dúvida é provavelmente simples de se resolver. Em relação a jogos top-down, gostaria de saber como invalido o código "distance_to_object" quando há algo na frente como uma parede. Tipo, qual o código para a seguinte expressão:

Se não há objetos sólidos na frente
{
"código"
}

Não sei se me entendem, mas quem puder me ajudar agradeço muito!


Última edição por RafaleCP em Ter 16 Jul 2013, 17:09, editado 1 vez(es) (Razão : A dúvida foi resolvida)
avatar
RafaleCP

Data de inscrição : 16/02/2013
Número de Mensagens : 42
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por Gonçalves em Seg 15 Jul 2013, 21:55

Estude collision_line, aí é só usar com paredes ou parent de objetos que impossibilitam a visão.
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por RafaleCP em Seg 15 Jul 2013, 23:27

Ok, obrigado pela dica amigo!
avatar
RafaleCP

Data de inscrição : 16/02/2013
Número de Mensagens : 42
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por Rodrigo Santiago em Ter 16 Jul 2013, 08:03

Colission_LINE????Suspect 

Gonçalves não acredito que você não respondeu essa pergunta direito!!!

O kara quase coloca o código e você nem ai pra perceber!!!

place_free(x,y) retorna verdadeiro ou falso se não existir um objeto sólido na posição x,y. Ele coloca o objeto atual na posição x,y para determinar se esta livre, por isso esteja certo de ter uma sprite ou mask.

Como você quer saber se TEM solido, você deve negar a expressão com !
Código:

//lengthdir_x(speed,direction) determina a próxima posição de x dependendo da velocidade e direção.E o mesmo pra y
if !place_free(x+lengthdir_x(speed,direction),y+lengthdir_y(speed,direction))
{
//"código"
}
avatar
Rodrigo Santiago

Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 3
   : 1
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por Gonçalves em Ter 16 Jul 2013, 13:37

Cara, o que ele quer é fazer a percepção do objeto e impedir que veja por atrás de paredes, e não colisão, creio eu. Pelo menos foi isso que entendi. '-'
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por RafaleCP em Ter 16 Jul 2013, 14:47

É, como o Gonçalves disse...

O meu código de percepção:
Código:
If(distance_to_object(obj_inimigo) < 400)
{
eliminar_player = true
}
else
{
eliminar_player = false
}

O meu código de ataque:
Código:
If(eliminar_player ==true)
{
move_towards_point(obj_soldado.x,obj_soldado.y,5)
}

O que quero é invalidar o true da variável "eliminar_player" se algum objeto estiver na frente.
avatar
RafaleCP

Data de inscrição : 16/02/2013
Número de Mensagens : 42
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por Gonçalves em Ter 16 Jul 2013, 14:55

Rafale, você sabe usar parents? Ou apenas um objeto impedirá a visão?

Se não souber usar parents, dê uma pesquisada, ele serve com referência para vários objetos diferentes, assim você se referir a vários objetos indicando apenas um.

Por exemplo: Crie um objeto chamado par_parede, e nas opções de todos os objetos que impedirão a visão, defina como parent (abaixo de mask, do lado esquerdo) o par_parede. Aí seu código ficará assim:

Código:
If(distance_to_object(obj_inimigo) < 400) and not collision_line(x,y,obj_jogador.x,obj_jogador.y,par_parent,0,0)
{
eliminar_player = true
}
else
{
eliminar_player = false
}
Espero que entenda. ._.
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por RafaleCP em Ter 16 Jul 2013, 16:56

Na realidade não sei como usar parent, mas vou dar uma olhadinha sobre. Obrigado pela ajuda, vou dar uma testada no código e também vou "brincar" um pouco com a opção parent (para entender melhor) e depois volto aqui no post sorrindo2 
avatar
RafaleCP

Data de inscrição : 16/02/2013
Número de Mensagens : 42
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por RafaleCP em Ter 16 Jul 2013, 17:08

Deu certo! Cara, muito obrigado mesmo, sem isso, não daria nem pra começar a IA dos meus personagens (eles iam ficar cegos, surdos e burros)! Valeu mesmo! Feliz 
avatar
RafaleCP

Data de inscrição : 16/02/2013
Número de Mensagens : 42
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Invalidar "distance_to_object"

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

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


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