Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Mensagens : 50
Reputação : 1
Data de inscrição : 23/01/2016
Idade : 13
Masculino
Ver perfil do usuáriohttp://Quartodojota.blogspot.com.br

[AJUDA] E quanto à física do Sonic?

em Sab 16 Dez - 11:53:23
Reputação da mensagem: 100% (1 votos)
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-Cool{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+Cool{y+=7 no_ar=false}
if place_free(x,y+Cool 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}}}
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum