Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: windspro en Julio 02, 2010, 01:23:09 AM

Título: Problema con doble salto
Publicado por: windspro en Julio 02, 2010, 01:23:09 AM
saludos a todos ya volvi  :D :D y avanze y intente hacer que mi personaje al hacer doble salto haga otro sprite y lo logre!, pero el problema es que cuando hago doble salto y caigo al suelo y vuelvo a saltar el personaje como que se queda trabado por 1 segundo y se ve muy feo aqui dejo los codigos:
Step:
{
if jump=0
if sprite_index=Fox_jump
sprite_index=Fox_jump2
}

Izquierda:
if place_free(x-4,y){
dir=-1
sprite_index=Fox_run_l
mov=true
x-=6
}
if jump=1{
sprite_index=Fox_jump_l
}
if jump=0{
sprite_index=Fox_jump2l
}

Derecha:
if place_free(x+4,y){
dir=1
sprite_index=Fox_run
mov=true
x+=6
}
if jump=1{
sprite_index=Fox_jump
}
if jump=0{
sprite_index=Fox_jump2
}

Space(tecla de salto)
if jump>0
{
vspeed=-12
jump-=1{
if dir=1{
sprite_index=Fox_jump
}else{
sprite_index=Fox_jump_l
}
}
}

soltar izquierda:
dir=-1
sprite_index=fox_stand_l
mov=false
x-=0
if jump=1{
sprite_index=Fox_falll
}

soltar derecha:
dir=1
sprite_index=Fox_stand
mov=false
x+=0
if jump=1{
sprite_index=Fox_fall
}

Colision:
if dir=1
    {
    sprite_index=Fox_stand;
    }
    if dir=-1
    {
    sprite_index=fox_stand_l ;
    }
    if other.solid=false
{
if other.y>self.y
{
  if vspeed>0&&!place_free(x,y+vspeed)
  {
   move_contact(270);vspeed = 0
  }
}
if other.y<=self.y
{
  if vspeed>0&&!place_free(x,y+vspeed)
  {
   move_contact(270);vspeed = 0
  }
}
}

if vspeed=0
{
jump=2
}

Se ve bastante complicado, pero creo que tiene solucion

Gracias
-------
Título: Re: Problema con doble salto
Publicado por: DEADOFALL en Julio 02, 2010, 03:13:54 AM
Ni idea XD
Título: Re: Problema con doble salto
Publicado por: NOKAUBURE en Julio 02, 2010, 11:20:05 PM
pfff yo no te puedo arreglar el codigo, te puedo decir como lo hago

collision bloque o step
if place_meeting(x,y+1,bloque) = true {saltos = 0}

Key press up
if place_meeting(x,y+1,bloque) = true {saltos = 1; vspeed -= 7; exit;}
if saltos = 1 {saltos = 2; vspeed -= 5; exit;}


step
if saltos = 1 {sprite_index = char_salto1; image_index = 0;}
if saltos = 2 {sprite_index = char_salto2; image_index = 0;}



Testeado y funciona al 100%. Si quieres mas de dos saltos, ve poniendo if saltos = 3 etc... yo lo use con kirby y va de maravilla. Si ya tienes eventos de movimiento, colision etc... solo a?ade estas partes al principio de tu codigo
Título: Re: Problema con doble salto
Publicado por: windspro en Julio 02, 2010, 11:43:29 PM
lo probare gracias   ;)