Hola comunidad gm vengo con esta duda de los slopes porque se atora al caminar hacia los slopes y al brincar sobre ellos y tengo estos c?digos:
En Left
if keyboard_check(ord("Z")) //si la tecla Z est? presionada
{
if place_free(x-5,y)
{
dir=-1;
sprite_index=spr_mario_small_run;
image_xscale=-1
mov=true;
x-=5;
image_speed=0.5;
}
}
else //si la tecla Z no est? presionada
{
if place_free(x-3,y)
{
dir=-1;
sprite_index=spr_mario_small_walk;
image_xscale=-1
mov=true;
x-=3;
image_speed=0.3;
}
}
if jump=1
{sprite_index=spr_mario_small_jump;
image_xscale=-1}
En Right
if keyboard_check(ord("Z")) //si la tecla Z est? presionada
{
if place_free(x+5,y)
{
dir=1;
sprite_index=spr_mario_small_run;
image_xscale=1
mov=true;
x+=5;
image_speed=0.5;
}
}
else //si la tecla Z no est? presionada
{
if place_free(x+3,y)
{
dir=1;
sprite_index=spr_mario_small_walk;
image_xscale=1
mov=true;
x+=3;
image_speed=0.3;
}
}
if jump=1
{sprite_index=spr_mario_small_jump;
image_xscale=1}
Y en colision con el bloque y slopes
if (vspeed > 0 && not place_free(x,y+vspeed)) {move_contact_solid(direction,12);
vspeed = 0
if dir=1
{
sprite_index=spr_mario_small_walk;
image_xscale=1
image_single=0
}
if dir=-1
{
sprite_index=spr_mario_small_walk;
image_xscale=-1
image_single=0
}
jump=0
}
espero su ayuda y gracias de antemano
saludos
en el event de la tecla left agregas un for.
for(i=0; i<32; i+=1;)
{
if place_free(x-3,y-i)
{
x-=3; y-=i+move_contac_solid(270,3)
}}
lo mismo para right
yo aprendi hace poco una forma sencilla y facil de entender, acerca de como moverse por los slopes, aunque no he probado con los for :-[, pero por lo que veo, lo del for es mas dinamico, pero este igual funciona XD.
por ejemplo en la tecla right:
image_xscale=1
x+=2
y-=5
move_contact_solid(270,3)
con el y-=5 haces que suba, y al colocar move_contac_solid(270,3) te mantiene pegado al suelo y eso da el efecto de que estas subiendo por una colina.
y en left
image_xscale=-1
x-=2
y-=5
move_contact_solid(270,3)
y me funciona perfecto, lo del y-=5 lo he probado con dos slopes de distinto tama?o y me funciona igual.
Espero que te sirva.
Cita de: elviskelley en Enero 02, 2012, 01:32:21 AM
en el event de la tecla left agregas un for.
for(i=0; i<32; i+=1;)
{
if place_free(x-3,y-i)
{
x-=3; y-=i+move_contac_solid(270,3)
}}
lo mismo para right
gracias si me funciono!!!
Cita de: Karasuman en Enero 03, 2012, 03:18:56 AM
yo aprendi hace poco una forma sencilla y facil de entender, acerca de como moverse por los slopes, aunque no he probado con los for :-[, pero por lo que veo, lo del for es mas dinamico, pero este igual funciona XD.
por ejemplo en la tecla right:
image_xscale=1
x+=2
y-=5
move_contact_solid(270,3)
con el y-=5 haces que suba, y al colocar move_contac_solid(270,3) te mantiene pegado al suelo y eso da el efecto de que estas subiendo por una colina.
y en left
image_xscale=-1
x-=2
y-=5
move_contact_solid(270,3)
y me funciona perfecto, lo del y-=5 lo he probado con dos slopes de distinto tama?o y me funciona igual.
Espero que te sirva.
lo intente poner pero el pero el personaje en vez de caminar brinca!!!