Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Ontem à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
11 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 10 Visitantes

CRP-Max

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

Saber quantos obj estão em colisão com outro

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

Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Sab 29 Set 2012, 15:31

Aew galera!!!

Gostaria de saber algum jeito de saber quantos objetos estão em colisão com um objeto com uma variável true

ex: tenho vários objetos em colisão mas quero saber quantos objetos estão em colisao com a variavel ativado=true
avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Luca$ em Sab 29 Set 2012, 15:35

Tenta o seguinte código:
Código:


with (all)
{
      if ativado=true and ja_adicionou=false
      {
      global.quantos_em_colisao+=1
      }
}

A variavel ja_adicionou é para não ficar adicionando infinitamente.
avatar
Luca$

Ranking : Nota D
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Número de Mensagens : 582
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: Saber quantos obj estão em colisão com outro

Mensagem por PedroX em Sab 29 Set 2012, 16:47

Código:
total = 0;

with(all)
{
if (object_index != other.object_index)
if (place_meeting(x, y, other))
if (ativado)
total += 1;
}

Esse código pode ser posto em qualquer evento.
Coloque antes de outros códigos que usam a variável.

Obs: talvez você não colocou a variável em todos os objetos, então em vez de all, coloque o nome do parent [dos objetos] que a possuem ou mesmo o nome de um [objeto] específico.

PedroX

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

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Sab 29 Set 2012, 17:28

Éo seguinte, estou fazendo um jogo de campo minado e to tentando adicionar o numero de bombas em volta dos quadrados mas como são 81 objetos iguais nao esta dando certo, como poderia botar quantas bombas tem em volta dos quadradinhos?

avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por PedroX em Sab 29 Set 2012, 17:31

Código:
total = 0;

with(bomba)
{
if (distance_to_object(other) < 5)
if (ativado)
total += 1;
}

Algo assim resolverá.

PedroX

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

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Sab 29 Set 2012, 22:23

Pedro

Nao existe 2 tipos de objetos, sao todos iguais mas com um variavel mostrando que é uma bomba, tambem os quadrados ficam em grade sendo que tem nas suas diagonais e como que fica a distancia sendo assim?
avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por PedroX em Sab 29 Set 2012, 22:41

Código:
e = position_meeting(bbox_left-1, y, nome_do_objeto).ativado;
d = position_meeting(bbox_right+1, y, nome_do_objeto).ativado;
c = position_meeting(x, bbox_top-1, nome_do_objeto).ativado;
b = position_meeting(x, bbox_bottom+3, nome_do_objeto).ativado;
ec = position_meeting(bbox_left-1, bbox_top-1, nome_do_objeto).ativado;
eb = position_meeting(bbox_left-1, bbox_bottom+1, nome_do_objeto).ativado;
dc = position_meeting(bbox_right+1, bbox_top-1, nome_do_objeto).ativado;
db = position_meeting(bbox_right+1, bbox_bottom+1, nomedoobjeto).ativado;

total= c + d + e + b + dc + db + eb + ec;

Nessa eu me confundi tanto que não tenho certeza se vai funcionar.

Até mais!

PedroX

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

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Sab 29 Set 2012, 23:05

Pedro

Obrigado por responder, mas da dando que a variavel não esta declarada mas ela esta, o que poderia ser?
avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por PedroX em Sab 29 Set 2012, 23:21

Especifique melhor o problema.
Fale onde estão colocados os códigos, quais objetos estão inclusos, etc;

PedroX

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

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Sab 29 Set 2012, 23:28

CREATE

Código:
image_speed=0
image_index=5

bomba=false
perto=0
add=0
aberto=false
STEP

Código:
var i;

if global.bomba < global.pbomba
  {
  i=round(random_range(1,10))
  if i=1 {bomba=true; global.bomba+=1}
  }

if global.bomba = global.pbomba{
e = position_meeting(bbox_left-1, y, object0).bomba;
d = position_meeting(bbox_right+1, y, object0).bomba;
c = position_meeting(x, bbox_top-1, object0).bomba;
b = position_meeting(x, bbox_bottom+3, object0).bomba;
ec = position_meeting(bbox_left-1, bbox_top-1, object0).bomba;
eb = position_meeting(bbox_left-1, bbox_bottom+1, object0).bomba;
dc = position_meeting(bbox_right+1, bbox_top-1, object0).bomba;
db = position_meeting(bbox_right+1, bbox_bottom+1, object0).bomba;

perto= c + d + e + b + dc + db + eb + ec}
E ta dando

___________________________________________
ERROR in
action number 1
of Step Event
for object object0:

Error in code at line 10:
e = position_meeting(bbox_left-1, y, object0).bomba;
^
at position 48: Unknown variable bomba
Sendo que como tu pode ver a variavel esta declarada
avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Thiago_o_programador em Dom 30 Set 2012, 10:50

o erro é que global.bomba, não é a mesma coisa que bomba, pro Game Maker são duas váriaveis diferentes, basta declarar, global.bomba.
avatar
Thiago_o_programador

Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 709
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 1

Ver perfil do usuário http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Dom 30 Set 2012, 12:04

Thiago_o_programador

Obrigado por responder, mas não é isso porque global.bomba serve pra saber quantas bombas estão criadas e a bomba serve pra ver se o quadradinho tem bomba
avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por luiz_eldorado em Dom 30 Set 2012, 12:26

Acho que não, acho que é porque o Game Maker tem um probleminha com funções usadas por ID. Tem que colocar parênteses. Tente isto, por exemplo:
Código:
e = (position_meeting(bbox_left-1, y, object0)).bomba;
avatar
luiz_eldorado

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 30/07/2011
Número de Mensagens : 928
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 1

Ver perfil do usuário http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por PedroX em Dom 30 Set 2012, 12:26

Só que não é recomendado usar variáveis globais com o mesmo nome que locais. O interpretador buga. Use nomes diferentes. Coloque um "s" no final.

Até mais!

PedroX

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

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Dom 30 Set 2012, 12:36

luiz_eldorado

Tentei isso e não funcionou

Pedrø

Troquei o nome mas continua o erro

Aqui ta o link da engine https://docs.google.com/open?id=0B3LC7hHm2MU6T19FVkVDeHR1emc
avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por theguitarmester em Dom 30 Set 2012, 12:58

TheGuitarMester entra em Ação!!! Fight! Brincadeira!

Vou Editar a Engine e Solucionar a Questão.

computador

14:05
vou começar a editá-la


Última edição por theguitarmester em Dom 30 Set 2012, 14:05, editado 1 vez(es)
avatar
theguitarmester

Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1

Ver perfil do usuário http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por moisesBR em Dom 30 Set 2012, 13:49

tente isto:
Código:
var i;

if global.bombas < global.pbomba
  {
  i=round(random_range(1,10))
  if i=1 {bomba=true; global.bombas+=1}
  }

if global.bombas = global.pbomba{
e = position_meeting(bbox_left-1, y, object0)=bomba;
d = position_meeting(bbox_right+1, y, object0)=bomba;
c = position_meeting(x, bbox_top-1, object0)=bomba;
b = position_meeting(x, bbox_bottom+3, object0)=bomba;
ec = position_meeting(bbox_left-1, bbox_top-1, object0)=bomba;
eb = position_meeting(bbox_left-1, bbox_bottom+1, object0)=bomba;
dc = position_meeting(bbox_right+1, bbox_top-1, object0)=bomba;
db = position_meeting(bbox_right+1, bbox_bottom+1, object0)=bomba;

perto= c + d + e + b + dc + db + eb + ec}
Aqui deu certo!

Edit:
Ih, foi malz The! Ah eu também quero mostrar que soy util!

Só adicionei = ao invez do ponto!
avatar
moisesBR

Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por theguitarmester em Dom 30 Set 2012, 14:18

Vi o jogo que você está Fazendo um "Campo Minado", tive que exluir a parte que está em Vermelho:
e = position_meeting(bbox_left-1, y, object0).bomba;
d = position_meeting(bbox_right+1, y, object0).bomba;...
isto é, o ".bomba". tive que excluí porque tava trancando, o Code estava Formatado errado.

Sabendo o Jogo que você está a cria, irei arrumar sua engine. baseado no "Campo Minado".

Editando-a computador ...

___________________15:32
Pronta a Engine arrumada:
http://www.4shared.com/file/pA_kgoed/Mina__editado_por_TheGuitarMes.html

Seus Codes(os que você utilizou) Não Estão Muito bons, ele pode melhorado, eu os Mantive, Fiz apenas o que pediu, descobrindo a colisção das bombas, mas havia outras maneiras mais fáceis e Melhores de se Fazer.
se quizer, eu posso fazer para que quando clicar em um Quadrado vazio(sem colisão de bombas), ele ache os outros de seus lados que tambem são vazios(como o Campo minado do Windows), é só pedir.
avatar
theguitarmester

Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1

Ver perfil do usuário http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Saber quantos obj estão em colisão com outro

Mensagem por Ufrarion em Seg 01 Out 2012, 13:32

theguitarmester

Funcionou perfeitamente, sobre fazer o sistema de abrir os outros quadrados não presisa porque esse jogo é mais para aprendizado mesmo mas sobre o medoto mais eficiente de fazer a descoberta das bombas eu aceito!
avatar
Ufrarion

Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

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

Ver perfil do usuário

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