[AJUDA] E quanto à física do Sonic?
Sáb 16 Dez - 11:53:23
Bom dia/tarde/noite/madrugada, vim aqui fazer minha visita anual ao fórum pois, eu estou fazendo um super projeto secreto de fangame do Sonic, mas não contem para ninguém. E bem, enquanto eu fazia o fangame, eu aprendi o que faz Sonic ser Sonic: Velocidade, momentum e física. Saca? Se você não sabe que existe física em Sonic, já experimentou dar um Spin Dash numa rampa e pular na ponta dela? Ou já jogou uma fase de casino? Bem, eu já consigo pôr uma certa velocidade(até mais rápido do que deveria), momentum, mas a física tá simplesmente um INFERNO. Quando tentei fazer a física, o movimento do Sonic em rampas ficava todo caga-- digo, ferrado. Explicando o que acontecia, em um tipo de rampa, o movimento do Sonic tava normal, ele subia e descia normalmente, mas em outro, o movimento invertia! Mas o que raios?! Enfim, se alguém puder me explicar como criar a física, explique-me, por favor!
A propósito, se estiver relacionado com o negócio do movimento invertido da rampa, a forma que fiz o movimento foi colocando no Step Begin uma variável chamada velocidade, e ao invés de utilizar hspeed para a velocidade horizontal do Sonic, usei o jump to position, marcando em relative, e quanto maior a velocidade, maior o x relativo do jump to position.
A propósito, para o movimento nas rampas, eu usei um script feito pelo Tiago Maurício(que eu não sei como se chama nesse fórum), mandarei ele aqui, se ele estiver relacionado com a física e o bug do movimento das rampas, ele já estará aí para vocês analisarem.
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}
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}}}
A propósito, se estiver relacionado com o negócio do movimento invertido da rampa, a forma que fiz o movimento foi colocando no Step Begin uma variável chamada velocidade, e ao invés de utilizar hspeed para a velocidade horizontal do Sonic, usei o jump to position, marcando em relative, e quanto maior a velocidade, maior o x relativo do jump to position.
A propósito, para o movimento nas rampas, eu usei um script feito pelo Tiago Maurício(que eu não sei como se chama nesse fórum), mandarei ele aqui, se ele estiver relacionado com a física e o bug do movimento das rampas, ele já estará aí para vocês analisarem.
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}
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}}}
- CG
- Mensagens : 16
Reputação : 0
Data de inscrição : 23/10/2017
Idade : 19
Re: [AJUDA] E quanto à física do Sonic?
Ter 11 Jun - 18:07:56
Pq tem emojis presentes no código?
aliás, esse código é simples demais para ter uma colisão de qualidade nos slopes assim como nos jogos originais. Mas para você conseguir fazer isso, você precisa estar em um nível intermediário e gml para isso, pois há coisas um pouco mais avançadas para esse tipo de coisa e será necessário saber um pouco da trigonometria para entender melhor as funções dos slopes.
aliás, esse código é simples demais para ter uma colisão de qualidade nos slopes assim como nos jogos originais. Mas para você conseguir fazer isso, você precisa estar em um nível intermediário e gml para isso, pois há coisas um pouco mais avançadas para esse tipo de coisa e será necessário saber um pouco da trigonometria para entender melhor as funções dos slopes.
Re: [AJUDA] E quanto à física do Sonic?
Sex 5 Jul - 13:22:47
"Pq tem emojis presentes no código?"
Provavelmente tem a ver com o fórum em si, e não com o código dele kkkkk
na hora do 8 e do ) juntos acaba formando a carinha
Provavelmente tem a ver com o fórum em si, e não com o código dele kkkkk
na hora do 8 e do ) juntos acaba formando a carinha
Permissões neste sub-fórum
Não podes responder a tópicos