Conectar-se
Quem está conectado
36 usuários online :: 4 usuários cadastrados, Nenhum Invisível e 32 Visitantes

Cambalinho, Koelho, lolandoplayer, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 27/05/2013
Número de Mensagens : 3
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

bug com gravidade

em Qui 30 Maio 2013, 19:43
galera,por favor me ajudem,eu estou tentando criar um jogo de plataforma e acontece um bug com a colisão,quando eu caio por ter pulado,passo alguns pixels do meu objeto "chão",ja coloquei os dois como solidos como em muitos tutoriais,conferi as mascaras de cada um e ainda ele continua passando alguns pixels
meu código para a gravidade e pulo é:
if (place_free(x,y+1)){
vspeed+=0.5
pular=false
}else{
vspeed=0
pular=true
}

if (pular=true){
if (keyboard_check(ord("Z"))){
vspeed-=12
}
}
sera que podem me ajudar a consertar esse bug sem ter que colocar um codigo no evento de colisao com o "chao",quero consertar esses bugs sem ter que criar um evento para toda colisao do player com algum objeto.(nao quero colocar isso porque ja testei e quando eu pulo ele para na hora serta,so que ele da uma travada antes de colidir com o "chao",entao me ajudei sem ter que usar esse metodo por favor)


Tópico movido, procure postar na seção correta, CRP-Max.
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 711
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: bug com gravidade

em Qui 30 Maio 2013, 22:26
Incorpore ao seu código algo como:

Código:
move_outside_solid(90,4)

Ficará mais ou menos assim:

Código:
if (place_free(x,y+1)){
vspeed+=0.5
pular=false
}else{
vspeed=0
move_outside_solid(90,4)
pular=true
}

É melhor setar o "solid" do seu objeto como "false".
avatar
Data de inscrição : 27/05/2013
Número de Mensagens : 3
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: bug com gravidade

em Sex 31 Maio 2013, 11:07
E cara,so que assim ele afunda e sobe,acontece algo como em água que eu pulo afundo depois subo novamente,eu estava querendo uma solução pra quando ele encostar no "chao"ele pare sem esse efeito de "água",se souber resolver isso responda por favor
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 28/10/2008
Número de Mensagens : 819
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: bug com gravidade

em Sex 31 Maio 2013, 15:36
Me responde o seguinte, o objeto chão esta como solido?

Já tive este problema porque o chão não estava definido como solido.
avatar
Data de inscrição : 27/05/2013
Número de Mensagens : 3
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: bug com gravidade

em Sex 31 Maio 2013, 20:10
esta como solido sim
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: bug com gravidade

em Sex 31 Maio 2013, 20:26
tente colocar na colisão com o solido vspeed=0 eu sempre uso assim, ao invez de por no step
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 711
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: bug com gravidade

em Sab 01 Jun 2013, 08:57
Reformule um pouco seu código, é melhor se usar "gravity" no lugar de vspeed 'bruto'. Note que no final do Step, o GM roda algumas funções, entre elas:

vspeed+=gravity
y+=vspeed

Nesse caso, seria melhor por:
Código:
if place_free(x,y+vspeed+1) gravity=.5;else {vspeed=0 move_outside_solid(90,gravity) gravity=0}
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 29/03/2009
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: bug com gravidade

em Sab 01 Jun 2013, 12:03
você esta tentando fazer gravidade com vspeed? não vai dar certo...
tente algo assim:
Código:
if place_free(x,y+2){gravity=0.3}else{gravity=0}
gravity_direction=270
e na colisão com o objeto chão(que tem que estar solido):
Código:
vspeed=0;

vai funcionar...
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 28/06/2012
Número de Mensagens : 253
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: bug com gravidade

em Sab 01 Jun 2013, 21:56
Ao invés de usar uma colisão, coloque no step um:

Código:
if !place_free(x,y+4)
{
move_contact_solid(270,4)
vspeed=0
pular=false
}
Desse jeito, ele não afunda no chão. Eu particularmente, detesto colisões. Sempre que possível tento trocá-las por um método de verificar o x e y. Ah, tem que deixar o chão como sólido, ok?
Espero ter ajudado.
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