Conectar-se
Quem está conectado
20 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 19 Visitantes

NPH

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

colisão em linha com dois objetos

em Seg 19 Ago 2013, 22:02
Estou com uma dúvida no collision_line.
O jogo que estou montando é parecido com xadrez, você clica em uma peça e escolhe a casa onde ela deve ir, se o caminho estiver livre. Até ai tudo bem, o problema é que eu quero que os obj_player que fiquem entre o obj_mira(que indica onde a peça deve ir quando o mouse for solto) e a global.play_selecionado(peça selecionada) criem o obj_inter, mostrando que elas estão impedindo o caminho.
O código que tentei usar é esse, mas não deu certo:

Quando uma peça é selecionada pelo mouse ela cria o obj_mira que segue o mouse.No create do obj_mira eu coloquei:
Spoiler:
global.play_selecionado=instance_nearest(x,y,obj_parent_player0)
Então o global.play_selecionado será =  obj_player escolhido

Aí no step do obj_parent_player0, cujo todos obj_player são parentes teria o código:
Spoiler:
if  collision_line(global.play_selecionado.x, global.play_selecionado.y , obj_mira.x, obj_mira.y, obj_parent_player, true, true)
{instance_create(x,y,obj_inter)}

Só preciso de um código que possa verificar se o obj_player colide em uma mesma linha com o obj_mira e o obj_player selecionado, se sim criar o  obj_inter.
Eu não tenho nenhuma outra ideia de como fazer esse código nervoso
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: colisão em linha com dois objetos

em Ter 20 Ago 2013, 10:54
Seu código parece estar correto. Mas você disse obj_parent_player0 ecolocou no código obj_parent_player, sem o "0". Alguns erros também podem estar ocorrendo pelo falo de você usar os os objetos sem eles estarem em jogo (Ou seja, sem eles existirem). Tente isso:

Código:
if instance_exists(obj_mira) and instance_exists(global.play_selecionado)
{
    if  collision_line(global.play_selecionado.x, global.play_selecionado.y , obj_mira.x, obj_mira.y, obj_parent_player, true, true)
    {
        instance_create(x,y,obj_inter);
    }
}
Espero que funcione.

FLWS!
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: colisão em linha com dois objetos

em Ter 20 Ago 2013, 17:01
Não deu certo, o obj_inter ainda não aparece.

avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: colisão em linha com dois objetos

em Ter 20 Ago 2013, 18:49
Esse obj_mira segue o mouse o tempo inteiro (Se sim, seria melhor usar mouse_x e mouse_y) ou ele para? Você guarda que valor dentro da variável global.play_selecionado?

Poderia passar os códigos de todos os objetos em questão? Pode ser que o erro nem esteja nesse código.

FLWS!
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 08/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: colisão em linha com dois objetos

em Ter 20 Ago 2013, 21:24
Ela segue o mouse:
{x = mouse_x;
y = mouse_y;
move_snap(64, 64);}

Eu mudei o código, tirei do parent e coloquei direto no obj_player, só que quando tem dois obj_player, eles invertem, tipo tem duas peças iguais, quando é para criar o obj_inter, ou ele cria nas duas ou cria na inversa, não na que esta colidindo em linha. Mad  
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum