bug com gravidade

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

bug com gravidade

Mensagem por marcos.vinicius.585112 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.

marcos.vinicius.585112

Número de Mensagens : 3
Data de inscrição : 27/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por Thiago_o_programador 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".

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por marcos.vinicius.585112 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

marcos.vinicius.585112

Número de Mensagens : 3
Data de inscrição : 27/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por CRP-Max 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.

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por marcos.vinicius.585112 em Sex 31 Maio 2013, 20:10

esta como solido sim

marcos.vinicius.585112

Número de Mensagens : 3
Data de inscrição : 27/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por Isaque Onix 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

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por Thiago_o_programador 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}

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por makgamer 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...

makgamer

Ranking : Nota D
Número de Mensagens : 927
Idade : 18
Data de inscrição : 29/03/2009
Notas recebidas : D
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   : 1
   :

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por Brother27 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.

Brother27

Ranking : Nota C
Número de Mensagens : 253
Idade : 17
Data de inscrição : 28/06/2012
Notas recebidas : C
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: bug com gravidade

Mensagem por Conteúdo patrocinado Hoje à(s) 12:36


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