[RESOLVIDO] Bug com place_free

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

[RESOLVIDO] Bug com place_free

Mensagem por Mateus O de Andrade em Ter 15 Abr 2014, 15:39

Boa tarde pessoal,
Estou usando um código para fazer um pulo mas reparei que tem um problema mas que não sei resolver sozinho.

Meu código é esse:

Código:
Create

gravity=0.5
gravity_direction=270

vel=4

---------------------------

Step

if keyboard_check(vk_right) and place_free(x+2,y){
x+=vel}
if keyboard_check(vk_left) and place_free(x-2,y){
x-=vel}
if keyboard_check(vk_up){vspeed=-10

}

if ( not place_free(x, y + vspeed))
{
move_contact_solid(270, 10)
gravity = 0
vspeed = 0  

} else {
gravity = 1
}

Quando uso ele assim como está, meu personagem pula mas não anda e, se removo o "not" ele anda mas não pula!
Venho corrigindo meu código faz algum tempo, usando ideias e dicas que encontro em diversos trechos de código mas agora já
não sei o que tenho de alterar.

Desde já se alguém puder dar uma ajudinha agradeço.


Última edição por Markituh em Ter 15 Abr 2014, 20:45, editado 2 vez(es) (Razão : Problema resolvido)

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
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] Bug com place_free

Mensagem por PedroX em Ter 15 Abr 2014, 16:16

Código:
if ( not place_free(x, y + vspeed[b]+1[/b]))

Não resolve?

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Bug com place_free

Mensagem por Mateus O de Andrade em Ter 15 Abr 2014, 16:28


Não, a menos que eu tenha esquecido ou não alterado alguma parte.
A propósito PedroX, o que exatamente você fez? Gostaria de saber mesmo assim.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
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] Bug com place_free

Mensagem por Igor KinGamer em Ter 15 Abr 2014, 17:34

Olhe melhor para o código que o PedroX colocou... Ele só acrescentou um +1 naquela linha, só que ele tentou deixar em negrito dentro do code e ficou com a tag ali ([­b][­/b])...

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Bug com place_free

Mensagem por chicoweb em Ter 15 Abr 2014, 17:47

Não é querendo esculachar ninguem pelo Amor de Deus hein, antes de me alertar ai pow saiba que de primeira eu tb não tinha reparado, mas que foi engraçada foi, rachei aqui.

lol!  lol!  lol!

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Bug com place_free

Mensagem por Mateus O de Andrade em Ter 15 Abr 2014, 17:51

affraid DEU CERTO! ahahhahahahaha
Mas, será que daria para me explicar o por que desse erro?

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
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] Bug com place_free

Mensagem por Markituh em Ter 15 Abr 2014, 20:45

O place_free vai checar se a mask/bounding box da sprite colide com algo sólido de forma relativa. É como se ele movesse virtualmente a sprite do seu personagem para as coordenadas indicadas, e verifica se há colisão. Mais informações [aqui]. O problema que houve aí é que,  o [not] nunca ia retornar true pois você estava checando nas coordenadas atuais do player! Daí como a condição do if se invalidava, ele executava o else e definia a gravidade, daí o porque de você não conseguir andar.

 Então surge o infame +1, para salvar a humanidade da destruição e fazer com que seu player não dê bug yes

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
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] Bug com place_free

Mensagem por PedroX em Qua 16 Abr 2014, 16:30



O seu bug ocorre porque você não verifica se há condições de aumentar a vspeed.

Edit: uma correção na imagem: em vez de 212, é 211.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Bug com place_free

Mensagem por Mateus O de Andrade em Qua 16 Abr 2014, 16:42

É pessoal, valeu pela ajuda, consegui não só resolver...entendi, e aprendi mais com os tutoriais sobre Colisão (que a propósito, se eu tivesse lido antes não teria criado esse post....my bad!!!). Valeu a atenção pessoal.
Por falar nos tutoriais, obrigado PedroX pelo tutorial sobre Collision_line, eu estava criando uma AI de inimigo ontem e hoje !!! a resposta veio logo que li o seu material! Se tudo der certo vai ficar muito bom Very Happy

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
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] Bug com place_free

Mensagem por PedroX em Qua 16 Abr 2014, 17:02

Recomendo o Manual das colisões: http://gmbr.forumeiros.com/t16184-

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Bug com place_free

Mensagem por Mateus O de Andrade em Qua 16 Abr 2014, 17:08

Era à este mesmo que me referia. Também estou lendo o do ALEX FC muito bem lembrado pelo Markituh que também recomendo.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
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] Bug com place_free

Mensagem por Conteúdo patrocinado Hoje à(s) 13:27


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