Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: 15689 en Febrero 20, 2010, 02:58:10 PM

Título: salto con diferente altura[SOLUCIONADO]
Publicado por: 15689 en Febrero 20, 2010, 02:58:10 PM
hola, tengo un a duda, quien jugo alguna vez a un juego de plataforma sabra que dependiendo de cuanto tiempo presione el boton de salto el personaje saltara mas alto o mas bajo, como podria hacer para que mi personaje haga lo mismo, dado que lo unico que se hacer es que al presionar el boton de salto el personaje salte pero siempre a la misma altura sin importar el tiempo que este precionado el boton, alguna ayuda por favor :-[
Título: Re: salto con diferente altura
Publicado por: knd144 en Febrero 20, 2010, 07:47:08 PM
a mi se me ocurre que uses una variable que aumente conforme aprietes la tecla de salto, y que al soltar esta tecla la altura del salto sea dependiendo del valor de la variable y que inmediatamente el valor de la variable reinicie a 0.

Digamos, la tecla de salto es la flecha hacia arriba. Entonces en el evento de presionar la tecla up:
alturasalto+=1;

y en el evento de soltarla:
vspeed=1*(alturasalto/30) // puse entre 30 por que cada segundo tiene 30 step, y por consigiente cada seguno la variable aumentara en 30.
alturasalto=0 // vuelvo a reiniciar la variable a 0.


esa es la idea basica, puede ya hacerle que la variable no sobrepase un valor maximo, poniendo as?: if(alturasalto<saltomaximo){alturasalto+=1}
e incluso se salte automaticamente al llegar al maximo sin tener que soltar la tecla...  :P
Título: Re: salto con diferente altura
Publicado por: Texic en Febrero 20, 2010, 08:13:50 PM
Se me ocurre (y es de hecho lo que uso) poner en el evento step
if keyboard_check(vk_up)=0 and vspeed<0 {vspeed+=1} //1 o la gravedad que tenga el juego
No usaria el que dice knd144 no porque no funcione, sino que los saltos no aumentan en velocidad
con el paso del tiempo, son un impulso momentaneo de energ?a que luego va bajando con el tiempo. Se veria
muy raro de esa manera..
Espero que te sirva, suerte  :)
Título: Re: salto con diferente altura
Publicado por: 15689 en Febrero 20, 2010, 09:19:08 PM
texic use lo que me dijistes, pero no salta, debo poner algo mas
Título: Re: salto con diferente altura
Publicado por: Texic en Febrero 20, 2010, 09:54:13 PM
Como es el motor de salto que usaste?? Este funciona si le das un vspeed negativo en
la tecla de salto y usas vspeed en vez de gravedad. La gravedad no sirve, trata de no usarla
Título: Re: salto con diferente altura
Publicado por: 15689 en Febrero 20, 2010, 10:14:42 PM
para el control de la gravedad tengo esto
[step]
if place_free(x,y+1)
{
gravity_direction=270 // Ajustamos la direccion de gravedad hacia abajo para ejercer la gravedad verticalmente abajo xD.
gravity=0.5 // Ponemos la gravedad.
}
else
{
gravity_direction=270
gravity=0
}
if (vspeed>12) {vspeed=12};

junto con lo que me distes

y en el boton de salto esto
[up]
if not place_free(x,y+1)
vspeed=-11 
Título: Re: salto con diferente altura
Publicado por: Texic en Febrero 20, 2010, 11:38:59 PM
Prueba asi, tiene que funcionar  :(
if place_free(x,y+1)
{
vspeed+=0.5
}
else
{
vspeed=0
}
if (vspeed>12) {vspeed=12};
if keyboard_check(vk_up)=0 and vspeed<0 {vspeed+=0.5}
Título: Re: salto con diferente altura
Publicado por: 15689 en Febrero 21, 2010, 03:42:28 PM
tampoco me anda, osea el personaje cae, pero al momento de presionar arriba no salta
Título: Re: salto con diferente altura
Publicado por: Texic en Febrero 21, 2010, 04:47:43 PM
Ya, lo acabo de probar.
En vez de
if place_free(x,y+1)
{
vspeed+=0.5
}
else
{
vspeed=0
}

Pon
if place_free(x,y+1)
{
vspeed+=0.5
}

Sin el else, no es necesario
Y en el objeto suelo, en la colision con el personaje dale
if y>pj.y
{
with (pj) {vspeed=0 move_contact_solid(270,-1)}
}

Asi funciona, lo acabo de probar
Título: Re: salto con diferente altura
Publicado por: Twister en Febrero 21, 2010, 05:02:25 PM
?No es m?s sencillo esto? :

if keyboard_check_pressed(vk_space) {vspeed=-Salto}
if keyboard_check_released(vk_space) && vspeed<0 {vspeed=0}
Título: Re: salto con diferente altura
Publicado por: Texic en Febrero 21, 2010, 05:05:58 PM
No es muy repentino?? Bueno, es otra manera  :)
Título: Re: salto con diferente altura
Publicado por: 15689 en Febrero 21, 2010, 06:47:16 PM
me sigue sin funcionar, veras antes de tocar el piso el personaje se queda quieto, mira te lo paso:
http://www.mediafire.com/?hgo1zmdw4mj (http://www.mediafire.com/?hgo1zmdw4mj)

y otra cosa en el de colision contra el piso por que comienza con:
if y>pj.y
no se cumple dado de que y=pj.y, en mi opinio claro esta.
Título: Re: salto con diferente altura
Publicado por: Texic en Febrero 21, 2010, 07:04:46 PM
Cuanto c?digo  :o
Bueno, ya lo arregle, te lo adjunto
Suerte con eso  :)

PD: Porque la speed del room estaba en 10??

EDIT: Ok, ya lo saque
Título: Re: salto con diferente altura
Publicado por: 15689 en Febrero 22, 2010, 05:42:55 PM
bueno aca les dejo el ejemplo resuelto de texic
http://www.mediafire.com/?julyrzmmnde (http://www.mediafire.com/?julyrzmmnde)