[RESOLVIDO] Possível problema com lógica

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

[RESOLVIDO] Possível problema com lógica

Mensagem por Mateus O de Andrade em Sex 13 Fev 2015, 16:27

Boa tarde Pessoal,
Estou enfrentando um problema no meu código. Talvez apenas um problema de lógica mesmo.

Meu código é o seguinte
No STEP do Objeto que representa o vento
Código:
if place_meeting(x,y,obj_player)
{
//desativa a gravidade
global.gravidade="off"
//Faz o player subir
obj_player.vspeed-=0.3
}
if not place_meeting(x,y,obj_player)
{
//religa a gravidade
global.gravidade="on"
}

Basicamente o que ele faz é simular um ventilador que fará o player ficar subindo enquanto está em contato com o "vento".
Ele está funcionando perfeitamente, até que eu coloque outro destes objetos na room.
Quando uso dois destes objetos na mesma sala, a parte que faz o player subir (a redução da vspeed funciona mas o desligamento da gravidade não. O que faz o player continuar caindo sem amortecer a queda.
Não intendo o por que disso.

Se auguem souber me responder ou precisar de mais informações é só pedir.

Valeu galerinha!!!


Última edição por Mateus O de Andrade em Sex 13 Fev 2015, 17:32, editado 2 vez(es)

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 30
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por AlexBosquin em Sex 13 Fev 2015, 16:31

tenta só colocar o else as vezes resolve n sei ;-;

Código:

if place_meeting(x,y,obj_player)
{
//desativa a gravidade
global.gravidade="off"
//Faz o player subir
obj_player.vspeed-=0.3
} else
{
//religa a gravidade
global.gravidade="on"
}

AlexBosquin

Ranking : Nota C
Número de Mensagens : 621
Idade : 19
Data de inscrição : 10/07/2012
Notas recebidas : C
Reputação : 35
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Mateus O de Andrade em Sex 13 Fev 2015, 16:36

Infelizmente Alex, não só não funciona como não pode ter else. Pois eu tenho outros objetos que também usam essa mecânica de desligar a gravidade.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 30
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por AlexBosquin em Sex 13 Fev 2015, 16:41

hmmm, tenta fazer um sistema de estados então, tipo assim no create

state = `st_parado`

dai depois e só ir desenvolvendo:
no obj que faz o player voar STEP:
Código:

if place_meeting(x,y,obj_player)
{
      with(obj_player)
      {
            state = `st_voando`
      }
}
agora no obj_player vc define o que acontece quando o estado for st_voando

e outra vc meche com a gravidade só do player nao a gravidade global entende. cada objeto tem que ter sua gravidade o que vc pode fazer caso todos os objetos do game usem a gravidade global é colocar que a propria var, supondo gravidade = global.gravidade_global.

isso resolveria tenta ai e me fala.

AlexBosquin

Ranking : Nota C
Número de Mensagens : 621
Idade : 19
Data de inscrição : 10/07/2012
Notas recebidas : C
Reputação : 35
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por vinians em Sex 13 Fev 2015, 16:45

O problema é que quando vc coloca dois objetos um ANULA o outro pois o player não pode estar em 2 lugares ao mesmo tempo, ou seja a variavel global fai ficar igual arvore de natal piscando ON e OFF. Para funcionar crie uma variavel dentro do player e verifique NO PLAYER se ele placemeeta um objeto vento.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Alex FC em Sex 13 Fev 2015, 16:47

Realmente a lógica mata.

Você praticamente fez "se e senão" no seu código. Ou seja, se não está colidindo liga gravidade, senão está desliga.

Uma das condições sempre vai estar ocorrendo. Então caso o player não estiver em contato com alguma das instâncias de vento, a variável global.gravidade vai ser "on".

Se você criar 3 ventos, o valor final da variável será o do último vento criado.

Ou seja, você colidiu com o primeiro vento a variável é setada para "off", ai ao mesmo tempo você não está colidindo com o segundo vento então a variável segundo a condição é trocada pra "on". E o mesmo se aplica ao terceiro vento.

Então em vez de usar esse código no vento use este somente no player:

Código:
if place_meeting(x, y, vento)
{

global.gravidade = "off";

vspeed -= 0.3;

}
else
{

global.gravidade = "on";

}

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por vinians em Sex 13 Fev 2015, 16:50

Alex FC escreveu:Realmente a lógica mata.

Você praticamente fez "se e senão" no seu código. Ou seja, se não está colidindo liga gravidade, senão está desliga.

Uma das condições sempre vai estar ocorrendo. Então caso o player não estiver em contato com alguma das instâncias de vento, a variável global.gravidade vai ser "on".

Se você criar 3 ventos, o valor final da variável será o do último vento criado.

Ou seja, você colidiu com o primeiro vento a variável é setada para "off", ai ao mesmo tempo você não está colidindo com o segundo vento então a variável segundo a condição é trocada pra "on". E o mesmo se aplica ao terceiro vento.

Então em vez de usar esse código no vento use este somente no player:

Código:
if place_meeting(x, y, vento)
{

global.gravidade = "off";

vspeed -= 0.3;

}
else
{

global.gravidade = "on";

}

FLWS!
Como eu havia dito acima, só não coloquei o código pro nosso amigo se aperfeiçoar hehehe
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Willy em Sex 13 Fev 2015, 16:54

Mas não vai funcionar mesmo... Veja bem, você colocou a seguinte condição no step do vento:
Se o jogador esta aqui{
Desligou a gravidade
}se não estiver{
Ligo a gravidade
}

Por se tratar de a variável global, outros objetos podem alterar a qualquer momento, no caso, o vento extra! Afinal, de acordo com o código, ele tem que ligar a gravidade. investigador

O correto é você tirar o código do vento e colocar no jogador, substituindo o place_metting(x,y,obj_player) por place_metting(x,y,obj_vento).

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 22
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Alex FC em Sex 13 Fev 2015, 16:54

Se lascar vinians! Happy

Apareceu aviso de nova mensagem, e eu não ia excluir minha tão elaborada mensagem neh?

De qualquer forma quanto mais ajuda melhor.

Edit: Vá se lascar você também Willy!

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Willy em Sex 13 Fev 2015, 17:00

Temos aqui em caso curioso... Três respostas com sentido idêntico postadas na mesma hora...

Meu amigo Matheus... Se não for essa a solução, desista do projeto.

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 22
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Mateus O de Andrade em Sex 13 Fev 2015, 17:15

Meus queridos colegas,
FICOU MUITO FODA ESSA BAGAÇA!!!!!! UAHShaUsu

Só não teve 4 respostas por que eu não salvei minha última Willy UASHuhuAShuashu

Galera, eu SABIA que tinha que ser problema na lógica!! Aos meus quatro colegas (sim, você também Alex ;) ) fiz a correção e AGORA O BIXO VAI PEGAAAAAAAAAAA!!!!
Valeu maninhos muito obrigado!!!!

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 30
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Willy em Sex 13 Fev 2015, 17:17

Uh.... Temos dois Alex aqui. :]

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 22
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Mateus O de Andrade em Sex 13 Fev 2015, 17:19

4 Colegas.....AlexBosquin, vinian, Alex FC e Willy...

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 30
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

Mensagem por Alex FC em Sex 13 Fev 2015, 17:34

Eu tava achando que tu tava louco citando o AlexBosquin. Quando postei minha mensagem, subi e pensei ter só o vinians. Tenho que trocar de óculos kkk

Se lasque também meu xará!

Trancado!

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Possível problema com lógica

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


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