Ptoblema com "Variaveis bolianos" com colisão

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

Ptoblema com "Variaveis bolianos" com colisão

Mensagem por Natch em Sab 18 Jul 2009, 19:14

Boas
Eu criei um "obj_control", ele cria objectos de acordo com a variável “global.criar” que é boliano. Se "global.criar=true" ele cria um objecto

O problema é o seguinte, o "global.criar" inicia em "false", meti numa colisão de um objecto_X com o objecto_Y, que quando estes colidirem o "global.criar= true" assim para criar outro, o mas como depois de colidirem ficam assim ate o final do jogo, o problema é que ele cria objectos sem parar, porque o "global.criar" vai ficar "true" ate o final do jogo.
Eu queria que ele voltasse a "false" mesmo que esses objectos continuarem em colisão…

Natch

Número de Mensagens : 501
Idade : 27
Data de inscrição : 05/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://studionatch.com.sapo.pt/

Voltar ao Topo Ir em baixo

Re: Ptoblema com "Variaveis bolianos" com colisão

Mensagem por Convidad em Sab 18 Jul 2009, 20:08

Nesse caso basta checar se o objecto já foi criado. Quando os dois colidirem coloque:

Código:
if not instance_exists(objecto_criado) then instance_create(x,y,objecto_criado);

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ptoblema com "Variaveis bolianos" com colisão

Mensagem por Natch em Sab 18 Jul 2009, 20:32

amigo isso é um pouco bem mais complexo, ve a engin e analisa-o

engine

Natch

Número de Mensagens : 501
Idade : 27
Data de inscrição : 05/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://studionatch.com.sapo.pt/

Voltar ao Topo Ir em baixo

Re: Ptoblema com "Variaveis bolianos" com colisão

Mensagem por Convidad em Sab 18 Jul 2009, 21:20

Natch escreveu:amigo isso é um pouco bem mais complexo, ve a engin e analisa-o

engine

Infelizmente ou não tenho o GM7. XD

Pelo nome, é um jogo de tetris certo? Na verdade, uma forma melhor de fazer um jogo assim é usando ds_lists ou arrays como coordenadas ao invés de colisão e objectos.

De qualquer forma, acho que sei o que você fez. Quando uma nova peça cai e colide com outra, a colisão cria uma nova peça. Só que pode haver um inconveniente nisso: a colisão pode criar uma nova peça para cada instância.

Tente fazer assim:

1 - Crie uma variável "activo" para seus objectos e defina-a como true nos eventos Create.

2 - Depois, na colisão deles, coloque:

Código:
if activo = true then
begin
      activo := false;
      instance_create( room_width/2, 0, nova_pecinha);
end;

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ptoblema com "Variaveis bolianos" com colisão

Mensagem por Natch em Dom 19 Jul 2009, 17:55

Realmente não percebi o código, mas tentei o seguinte na colisão do objecto
Código:
if vspeed=0 then
{
begin
global.criar=true;
end;
}
mas não resultou...

Natch

Número de Mensagens : 501
Idade : 27
Data de inscrição : 05/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://studionatch.com.sapo.pt/

Voltar ao Topo Ir em baixo

Re: Ptoblema com "Variaveis bolianos" com colisão

Mensagem por Kabeção em Dom 19 Jul 2009, 19:02

Coloque condições nas colisões.
No evento Create dos objetos defina
Código:
ativo = true;

Em todos as colisões coloque uma condição e defina ativo = false;
Código:
if ativo = true
{
    vspeed=0;
    global.obj=3;
    global.criar=true;

    ativo = false;
}

Quando o objeto colidir a variavel ativo será false e o código da colisão não vai mais ficar definindo global.criar como true.

Foi isso que Capitão Commando estava tentando passar.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Ptoblema com "Variaveis bolianos" com colisão

Mensagem por Conteúdo patrocinado Hoje à(s) 22:51


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