Bom, existem várias formas de se fazer um sistema de rampa usando na colisão com uma rampa o código "place_free" mas não é o bastante para suportar ângulos mais fechados pra isso você teria que levar horas para regular de acordo com cada angulo diferente!
Mas com esse tutorial... Seu problemas acabaram! XD
Fiz um sistema de rampas que funciona usado o script.
Bem fácil de intender! ^^
Vamos aos códigos!
1º cria um script com o nome Rampa (Pode ser o que você quiser)
CÓDIGO: --------------------------------------------------------------------SELECIONAR CONTEÚDO
if place_free(x+velo,y-1){x+=velo y-=1}
else
if place_free(x+velo,y-2){x+=velo y-=2}
else
if place_free(x+velo,y-3){x+=velo y-=3}
else
if place_free(x+velo,y-4){x+=velo y-=4}
else
if place_free(x+velo,y-5){x+=velo y-=5}
else
if place_free(x+velo,y-6){x+=velo y-=6}
else
if place_free(x+velo,y-7){x+=velo y-=7}
else
if place_free(x+velo,y-
{x+=velo y-=8}
else
if place_free(x+velo,y-9){x+=velo y-=9}
else
if place_free(x+velo,y-10){x+=velo y-=10}
else
if place_free(x+velo,y-11){x+=velo y-=11}
else
if place_free(x+velo,y-12){x+=velo y-=12}
else
if place_free(x+velo,y-13){x+=velo y-=13}
else
if place_free(x+velo,y-14){x+=velo y-=14}
else
if place_free(x+velo,y-15){x+=velo y-=15}
else
if place_free(x+velo,y-16){x+=velo y-=16}
else
if place_free(x+velo,y-17){x+=velo y-=17}
else
if place_free(x+velo,y-18){x+=velo y-=18}
else
if place_free(x+velo,y-19){x+=velo y-=19}
else
if place_free(x+velo,y-20){x+=velo y-=20}
else
if place_free(x+velo,y-21){x+=velo y-=22}
else
if place_free(x+velo,y-23){x+=velo y-=23}
else
if place_free(x+velo,y-24){x+=velo y-=24}
else
if place_free(x+velo,y-25){x+=velo y-=25}
else
if place_free(x+velo,y-26){x+=velo y-=26}
else
if place_free(x+velo,y-27){x+=velo y-=27}
else
if place_free(x+velo,y-28){x+=velo y-=28}
else
if place_free(x+velo,y-29){x+=velo y-=29}
else
if place_free(x+velo,y-30){x+=velo y-=30}
else
if place_free(x+velo,y-31){x+=velo y-=31}
else
if place_free(x+velo,y-32){x+=velo y-=32}
else
if place_free(x+velo,y-33){x+=velo y-=33}
else
if place_free(x+velo,y-34){x+=velo y-=34}
else
if place_free(x+velo,y-35){x+=velo y-=35}
else
if place_free(x+velo,y-36){x+=velo y-=36}
else
if place_free(x+velo,y-37){x+=velo y-=37}
else
if place_free(x+velo,y-38){x+=velo y-=38}
else
if place_free(x+velo,y-39){x+=velo y-=39}
else
if place_free(x+velo,y-40){x+=velo y-=40}
if vvele>=0{
if place_free(x,y+1) and !place_free(x,y+2){y+=1 no_ar=false}
if place_free(x,y+2) and !place_free(x,y+3){y+=2 no_ar=false}
if place_free(x,y+3) and !place_free(x,y+4){y+=3 no_ar=false}
if place_free(x,y+4) and !place_free(x,y+5){y+=4 no_ar=false}
if place_free(x,y+5) and !place_free(x,y+6){y+=5 no_ar=false}
if place_free(x,y+6) and !place_free(x,y+7){y+=6 no_ar=false}
if place_free(x,y+7) and !place_free(x,y+
{y+=7 no_ar=false}
if place_free(x,y+
and !place_free(x,y+9){y+=8 no_ar=false}
if place_free(x,y+9) and !place_free(x,y+10){y+=9 no_ar=false}
if place_free(x,y+10) and !place_free(x,y+11){y+=10 no_ar=false}
if place_free(x,y+11) and !place_free(x,y+12){y+=11 no_ar=false}
if place_free(x,y+12) and !place_free(x,y+13){y+=12 no_ar=false}
if place_free(x,y+13) and !place_free(x,y+14){y+=13 no_ar=false}
if place_free(x,y+3){no_ar=true}
if !place_free(x,y+3){if vvele>0{no_ar=false}}}
O que ele faz?
Vai detectar os pixel da plataforma e automaticamente ira calcular o angulo que fara o personagem subir! ^^
2º no personagem você vai no create e coloca:
CÓDIGO: --------------------------------------------------------------------SELECIONAR CONTEÚDO
vvele=0
velo=0
Apenas para ativar o script
No step do personagem em baixo de qualquer código de movimentos
CÓDIGO: --------------------------------------------------------------------SELECIONAR CONTEÚDO
Rampa()
Vai localizar o script a ser executado
depois disso ele vai funfar normalmente em qualquer colisão com plataformas inclinadas, calculando cada pixel do objeto! ^^
(Lembrando que se você tiver uma plataforma com a colisão programada e for adicionar as rampas, é só cria-las e por como parente a essa primeira plataforma!
Espero que isso ajude muitos que querem criar um jogo legal do Sonic. (Ou aprender aos poucos o sistema de 360°)
Creditos a Taigo Toushirou