[Problema] Colisão que controla outrosobjetos

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

Resolvido [Problema] Colisão que controla outrosobjetos

Mensagem por Super Maker em Dom 11 Mar 2012, 17:27

Olá galera!
To com um problemão aqui de colisão. Tava tudo tão lindo quando me deperei com isso.
Meu problema: eu to querendo que na colisão com um objeto (interruptor), trocasse a instancia pra outra, só que isso em vários objetos igais na mesma room, e que essa colisão, fizesse isso funcionar uma só vez a cada colisão. Quando o objeto responsável pela colisão atingir os eixos do objeto responsável pelas trocas de instancias, acontece isso.
Alguém sabe oque fazer?


Última edição por Super Maker em Dom 18 Mar 2012, 10:47, editado 1 vez(es)

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por Ueliton em Dom 11 Mar 2012, 17:33

Não entendi muito bem, é para que quando um objeto colidir com o objeto interruptor todos esses objetos (todos são iguais?) mudarem as instâncias?

Ueliton

Ranking : Nota D
Número de Mensagens : 128
Data de inscrição : 29/10/2011
Notas recebidas : E+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://gmls.forumeiros.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por Need 90 em Dom 11 Mar 2012, 17:36

Vamos supor que existem três objetos :
obj_player
obj_interruptor
obj_interruptor2


E que a colisão seja controlada pelo player, quando colidir com o obj_interruptor :
Código:
with (other) instance_change (obj_interrupitor2,false)
Assim ele só vai tratar de trocar uma instancia, por exemplo, se no lugar desse código você ponhasse esse :
Código:
with (obj_interrupitor) instance_change (obj_interrupitor2,false)
Ele iria tratar todas as instancias.

Need 90

Ranking : Nota B
Número de Mensagens : 787
Data de inscrição : 16/01/2012
Notas recebidas : D+A+B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://need90games.blogspot.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por Super Maker em Dom 11 Mar 2012, 17:55

Sim Ueliton.
Tenho vários botões (interruptores) na sala. Metade deles ativos e a outra inativa.
Quero que ao alinhar os eixos do heroi com os do botão todos os outros botões sejam destruidos e seja criado o botão contrário ao que estava lá.
Se uma metade é ativa ela passa a ser inativa e a outra metade segue a mesma lógica.

E Need 90, eu ja tentei isso, mas não com instance_change. Vou tentar agora e ja dou um edite.

*******Edite******
No create do interruptor ativado eu fiz:
Código:
global.turn = 0;
Na colisão do mesmo com o player eu fiz:
Código:
if x=other.x and y=other.y{
with(obj_red_button_up){
instance_change (obj_red_button_down,false)
}
global.turn = 1;
}
E no step dos objetos desativados eu fiz:
Código:
if global.turn = 1{
global.turn = 0;
with(obj_red_button_down){
instance_change (obj_red_button_up,false)
}
}
Resultado: quando o player sobe no ativado, todos os ativados ficam desativados (isso ta certo), mas ou outros só mudam se sair de cima do ativado.
Da uma dica aí pessoal?

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por Need 90 em Dom 11 Mar 2012, 18:00

ao invés de de global.turn coloque só turn e na hora que você for manipular através de outros objetos use :
Código:
other.turn=
Deve servir, se não der certo avisa.

Need 90

Ranking : Nota B
Número de Mensagens : 787
Data de inscrição : 16/01/2012
Notas recebidas : D+A+B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://need90games.blogspot.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por Super Maker em Dom 11 Mar 2012, 18:23

Não deu em nada. To colocando tudo em pratica, mas acho que é falta de organização dos códigos.
Se tiverem maisideias manda!

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por PedroX em Dom 11 Mar 2012, 21:06

Que confusão...

Você disse destruir, mas depois disse sobre inatividade.

Poderia explicar um pouco melhor?

Sinceramente (ao contrário de outros, em outros tópicos) eu não entendi.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por Super Maker em Seg 12 Mar 2012, 18:43

Pedrø escreveu:Que confusão...

Você disse destruir, mas depois disse sobre inatividade.

Poderia explicar um pouco melhor?

Sinceramente (ao contrário de outros, em outros tópicos) eu não entendi.
Então eu peço desculpas se mais uma vez não fui claro pra vocês.
Vou gravar um vídeo que vai mostrar o que quero dizer ja que palavras não bastam.
Até logo!

**********Editado**************

Aqui um vídeo pra tentar esclarecer melhor o que quero:

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por PedroX em Seg 12 Mar 2012, 19:13

Coloca no Create do player:
Código:
colidindo=0

Coloca no Step do player:

Código:
if !colidindo && place_meeting(x, y, obj_botao)
with(obj_botao)
{
if sprite_index==spr_cima
sprite_index=spr_baixo
else
sprite_index=spr_cima
}

colidindo = place_meeting(x, y, obj_botao)

Lembre-se que o teste de colisão deve vir depois da checagem dos sprites, para que não haja bugs.

place_meeting serve para testar uma colisão e retorna o id da instância que colidiu, ou false (negação: !).

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por Super Maker em Dom 18 Mar 2012, 10:46

É por isso que eu amo todos vocês!
Eu usei o seu códígo Pedro e fiz uma adaptações pro outro objeto. Deu nisso:
Código:
//adaptação de Pedro
if x=obj_red_button_up.x and y=obj_red_button_up.y{
if !colidindo && place_meeting(x, y, obj_red_button_up)
with(obj_red_button_up)
{
if sprite_index==spr_red_button_up
sprite_index=spr_red_button_down
else
sprite_index=spr_red_button_up
}
//minha adaptação
with(obj_red_button_down){
if sprite_index==spr_red_button_down
sprite_index=spr_red_button_up
}
//continuação da adaptação de Pedro
colidindo = place_meeting(x,y,obj_red_button_up)
}
Na prática ficou assim:

off: Legal o novo modo de upload do imageshack
Entendeu a imagem né?
Como são dois tipos de objetos tenho que fazer pro outro, sem causar conflitos nos códigos, mas pode ser de qualquer forma, só quero que funcione.
Oque mais eu poderia fazer pra que quando ele subir no outro acontessa o contrario?

*****Editado*******

Resolvido pessoal, mas mesmo assim agradeço a colaboração de todos inclusive a sua Pedro, por ter abrido minha mente rsrsr

Eu não usei os códigos de vocês, mas fico feliz por estarem sempre tentando ajudar.
E como sempre, é claro, vou mostrar o código que fiz pra resolver.
Na colisão do player com o obj_red_button_up eu fiz:
Código:
if x=other.x and y=other.y{
if obj_red_button_down.sprite_index=spr_red_button_down{
with(obj_red_button_down){
sprite_index=spr_red_button_up;
}
}
if other.sprite_index=spr_red_button_up{
with(obj_red_button_up){
sprite_index=spr_red_button_down;
}
}
}
Na colisão do player com o obj_red_button_down eu fiz:
Código:
if x=other.x and y=other.y{
if obj_red_button_up.sprite_index=spr_red_button_down{
with(obj_red_button_up){
sprite_index=spr_red_button_up;
}
}
if other.sprite_index=spr_red_button_up{
with(obj_red_button_down){
sprite_index=spr_red_button_down;
}
}
}
Tendo um resultado como esse agora estou sucegado e vou continuar o meu remake do Bobby Carrot
Valeu pelo esforço pessoal.
Pode trancar o tópico!


Última edição por Super Maker em Dom 18 Mar 2012, 11:39, editado 3 vez(es) (Razão : [Resolvido])

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

Mensagem por p2612 em Dom 18 Mar 2012, 11:01

muto legal o jogo Happy

p2612

Número de Mensagens : 13
Idade : 19
Data de inscrição : 27/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://project2-games.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Problema] Colisão que controla outrosobjetos

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


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