Conectar-se
Quem está conectado
28 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 27 Visitantes

Katerp

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[RESOLVIDO] Possível problema com lógica

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)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

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

em Sex 13 Fev 2015, 16:31
Reputação da mensagem: 100% (1 votos)
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"
}
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

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

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.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

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

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.
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 1 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

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

em Sex 13 Fev 2015, 16:45
Reputação da mensagem: 100% (1 votos)
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!
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

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

em Sex 13 Fev 2015, 16:47
Reputação da mensagem: 100% (1 votos)
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!
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 1 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

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

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!
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1844
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

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

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).
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

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

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!
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1844
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

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

em Sex 13 Fev 2015, 17:00
Reputação da mensagem: 100% (2 votos)
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.
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

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

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!!!!
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1844
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

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

em Sex 13 Fev 2015, 17:17
Uh.... Temos dois Alex aqui. :]
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

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

em Sex 13 Fev 2015, 17:19
4 Colegas.....AlexBosquin, vinian, Alex FC e Willy...
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

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

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!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum