[Resolvido] O "instance_deactivate_region" como funciona?

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

Resolvido [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por gifah em Ter 12 Jul 2011, 16:09

Como funciona essa função?

Eu preciso utiliza-la. mas nao entendi o que é passado como argumento.

instance_deactivate_region(left,top,width,height,inside,notme)

o que significa cada um deles?

Alguem poderia dar um exemplo tambem?

left, top, width, height, inside, notme


Última edição por gifah em Qua 13 Jul 2011, 12:24, editado 1 vez(es)

gifah

Ranking : Nota B
Número de Mensagens : 111
Idade : 27
Data de inscrição : 25/04/2011
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por PedroX em Ter 12 Jul 2011, 16:17

instance_deactivate_region(left,top,width,height,inside,notme)

Desativa todas as instâncias na região indicada (aquelas em que pelo menos uma parte da sprite está dentro da região, que é retangular).
-----------
Left: Seria o ponto x inicial.
Top: Seria o ponto y inicial
Width: Comprimento do retângulo
Height: Altura do retângulo
--------
Inside:
0- Desativa as instâncias que não estão no retângulo
1- Desativa as que estão dentro do retângulo
--------
Notme:
1- Não desativa a instância que chamou a função.
0- Desativa a instância que chamou a funçã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: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por saim em Ter 12 Jul 2011, 16:19

as primeiras 4 variáveis definem o retângulo no qual a função atuará (pense em collision_rectangle).
inside, pode ser true ou false, determina se a função atua dentro ou fora do retângulo (true=dentro).
notme, também true ou false, determina se a função atuará na instância que a chama, caso a instância esteja na área determinada (true=não atua)

Edit: Vencido por Pedro Henrique!

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por JV Justino em Ter 12 Jul 2011, 16:32

Esta função serve para desativar todas as instâncias em uma região.

Como assim desativar?
O objeto permanecerá na room, só que todos os seus eventos serão desconsiderados, inclusive o evento draw, não permitindo que o objeto seja desenhado.

Como funciona esta função?
Left, Top, Width e Height, definem qual a região em que os objetos serão desativados. Em Left deve ser colocada a posição esquerda da
região. Em Top deve ser colocada a posição de cima da região. Em Width e Height devem ser colocadas a largura e a altura, respectivamente, da região.

Inside define se serão desativados os objetos que estão dentro da região (1), ou fora da região (0).

Notme define se o objeto que está usando a função será desativado (0) ou não (1).


Fiz uma engine para você:
Código:
http://www.4shared.com/file/zOHI2Ord/Exemplo.html?


Espero ter ajudado!


Última edição por joao vitor jv em Ter 12 Jul 2011, 16:52, editado 1 vez(es)

JV Justino

Ranking : Nota A
Número de Mensagens : 619
Idade : 19
Data de inscrição : 07/12/2010
Notas recebidas : A+A
Reputação : 20
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: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por gifah em Ter 12 Jul 2011, 16:47

saim escreveu:as primeiras 4 variáveis definem o retângulo no qual a função atuará (pense em collision_rectangle).
inside, pode ser true ou false, determina se a função atua dentro ou fora do retângulo (true=dentro).
notme, também true ou false, determina se a função atuará na instância que a chama, caso a instância esteja na área determinada (true=não atua)

Edit: Vencido por Pedro Henrique!

eu consegui entender, mas não esta funcionando. Eu coloco elas para apagar as instancias que existem de um determinado local. coloquei elas dentro do retangulo como foi dito, só que nao funciona.

Simplismente não dá nada, elas continuão lá.

instance_deactivate_region(534,256,32,32,true,false);
instance_deactivate_region(570,256,32,32,true,false);

ta ai o que eu fiz.

é isso mesmo? Eu preciso deletar essas duas regiões. Eu coloquei elas em um ifi pra poder cancelar quando o jogador estiver em um determinado local. Quando ele estiver em outro ai ela pode aparecer de novo.

o primeiro true (pelo que eu entendi) é pra apagar todas as instancias dentro do retangulo, e o segundo é pra nao deletar a instancia que a criou, se caso ela estiver dentro desse retangulo (o que nao é o caso, porque ela nao esta dentro do triangulo.

É isso mesmo, ou to fazendo errado?

gifah

Ranking : Nota B
Número de Mensagens : 111
Idade : 27
Data de inscrição : 25/04/2011
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por Igor KinGamer em Ter 12 Jul 2011, 17:25

Não é deletar as instâncias, é desativar. Não confunda as coisas, desativar é aquilo que o joao vitor jv disse.
Se você quer que as instâncias sejam reativadas depois, não adianta simplesmente colocar o instance_deactivate...() dentro de um if, você tem que usar instance_activate_...() para reativar as instâncias desativadas anteriormente.

Talvez seu código não teve efeito por causa da largura e altura do retângulo (32, 32). Tem certeza que está usando a área certa? Em que evento você colocou essa função?

Obs.: O último argumento, em que você colocou false, indica que a instância que chamou a função pode ser desativada. Para que ela não possa ser desativada, o argumento notme deve ser true.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por saim em Qua 13 Jul 2011, 08:42

O Igor falou tudo, Gifah. Os 3° e 4° argumentos são largura e altura, não x2, y2. Talvez você tenha se confundido.
É verdade que, desativando uma instância, ela deixa de ser desenhada, mas isso é bem diferente de deletá-la. Se você reativá-la, ela ainda estará lá.
E muito cuidado ao desativar a instância que chamou a função. Pode ficar complicado de reativar as coisas, de modo que o jogo pode travar.

Pra efetivamente deletar uma instância, a função é "instance_destroy()". Pra deletar todas as instâncias dentro de um retângulo, você pode usar collision_rectangle.
Código:
with (all){
   if collision_rectangle(x1, y1, x2, y2, object_index, true, false){
      instance_destroy();
      }
   }

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por gifah em Qua 13 Jul 2011, 10:38

saim escreveu:O Igor falou tudo, Gifah. Os 3° e 4° argumentos são largura e altura, não x2, y2. Talvez você tenha se confundido.
É verdade que, desativando uma instância, ela deixa de ser desenhada, mas isso é bem diferente de deletá-la. Se você reativá-la, ela ainda estará lá.
E muito cuidado ao desativar a instância que chamou a função. Pode ficar complicado de reativar as coisas, de modo que o jogo pode travar.

Pra efetivamente deletar uma instância, a função é "instance_destroy()". Pra deletar todas as instâncias dentro de um retângulo, você pode usar collision_rectangle.
Código:
with (all){
   if collision_rectangle(x1, y1, x2, y2, object_index, true, false){
      instance_destroy();
      }
   }

hum, mas estou com um problema.

eu ate consegui fazer funcionar do jeito que eu quero, mas quando eu passo com o jogador encima do local ela tambem é desativada. Eu queria que só aquele objeto que esta lá fosse desativado e mais nenhum outro.

Alguem sabe como fazer isso?

gifah

Ranking : Nota B
Número de Mensagens : 111
Idade : 27
Data de inscrição : 25/04/2011
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por saim em Qua 13 Jul 2011, 11:28

Código:
instance_deactivate_region(argumentos)
instance_activate_object(jogador)
ou
Código:
desligar=collision_rectangle(x1, y1, x2, y2, all, true, false)
instance_deactivate_object(desligar)
instance_activate_object(jogador)
Teste e conte.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por gifah em Qua 13 Jul 2011, 12:17

saim escreveu:
Código:
instance_deactivate_region(argumentos)
instance_activate_object(jogador)
ou
Código:
desligar=collision_rectangle(x1, y1, x2, y2, all, true, false)
instance_deactivate_object(desligar)
instance_activate_object(jogador)
Teste e conte.

beleza. ja funcionou aqui.

gifah

Ranking : Nota B
Número de Mensagens : 111
Idade : 27
Data de inscrição : 25/04/2011
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] O "instance_deactivate_region" como funciona?

Mensagem por Conteúdo patrocinado Hoje à(s) 08:13


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