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

#2 Enero 03, 2012, 03:18:56 AM Ultima modificación: Enero 03, 2012, 03:55:49 AM por Karasuman
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!!!