Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[RESOLVIDO] Possível problema com lógica
5 participantes
Página 1 de 1
[RESOLVIDO] Possível problema com lógica
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
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!!!
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- Games Ranking :
Data de inscrição : 25/03/2014
Reputação : 37
Número de Mensagens : 410
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [RESOLVIDO] Possível problema com lógica
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"
}
Re: [RESOLVIDO] Possível problema com lógica
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- Games Ranking :
Data de inscrição : 25/03/2014
Reputação : 37
Número de Mensagens : 410
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [RESOLVIDO] Possível problema com lógica
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:
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.
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`
}
}
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.
Re: [RESOLVIDO] Possível problema com lógica
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!
Flws!
Re: [RESOLVIDO] Possível problema com lógica
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:
FLWS!
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!
Re: [RESOLVIDO] Possível problema com lógica
Como eu havia dito acima, só não coloquei o código pro nosso amigo se aperfeiçoar heheheAlex 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!
Flws!
Re: [RESOLVIDO] Possível problema com lógica
Mas não vai funcionar mesmo... Veja bem, você colocou a seguinte condição no step do vento:
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.
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).
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.
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).
Re: [RESOLVIDO] Possível problema com lógica
Se lascar vinians!
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!
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!
Re: [RESOLVIDO] Possível problema com lógica
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.
Meu amigo Matheus... Se não for essa a solução, desista do projeto.
Re: [RESOLVIDO] Possível problema com lógica
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!!!!
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- Games Ranking :
Data de inscrição : 25/03/2014
Reputação : 37
Número de Mensagens : 410
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [RESOLVIDO] Possível problema com lógica
4 Colegas.....AlexBosquin, vinian, Alex FC e Willy...
Mateus O de Andrade- Games Ranking :
Data de inscrição : 25/03/2014
Reputação : 37
Número de Mensagens : 410
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [RESOLVIDO] Possível problema com lógica
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!
Se lasque também meu xará!
Trancado!
FLWS!
Tópicos semelhantes
» [resolvido] problema com lógica de wrap
» Pequeno problema de "lógica" com sistema de keys.
» [Resolvido] Lógica de um FPS?
» [Resolvido]é possível desativar ESC em mensagens?
» [Resolvido][Dúvida]Lógica & Colisão
» Pequeno problema de "lógica" com sistema de keys.
» [Resolvido] Lógica de um FPS?
» [Resolvido]é possível desativar ESC em mensagens?
» [Resolvido][Dúvida]Lógica & Colisão
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos