Velocidade relativa á rampa

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Velocidade relativa á rampa

Mensagem por RafaelCazarotto em Qui 27 Dez 2012, 14:27

pessoal do forum, estou com duvida de como fazer com que por exemplo a bolinha role a rampa com uma velocidade dependendo do angulo dela exe a rampa tem 20º de inclinação a velocidade é x, se tiver 40º a velocidade se torna 2x, isso é muito dificil e nao to conseguindo fazer, e tbm gostaria saber como fazer o "torque" (como é chamado na fisica), seria como por exemplo uma balança antiga, seria que uma tabua estivese sendo erguida por um troco exatamente no meio dela mais ou menos assim -----O----- tipo isso , dai cai um peso no lado esquerdo, e o peso faz isso a ponta esquerda encostar no chao e a ponta direita no ar, é dificil explicar isso, desculpe se estou meio atrapalhado, queria que esse esquema da madeira fosse relacionado ao peso, exe uma pessoa de 50 kg senta na parte esquerda, e a parte esquerda encosta no chao, dai uma pessoa de 100 kg senta na parte direita (não me pergunte como, kkkk) e a parte direita da tabua encosta no chao e o carinha que estava sentado na parte esquerda acaba sendo levantado junto com a ponta esquerda,

Espero ter explicado direito pq é muito dificil, se alguem souber por favor me fassa uma engine, Creditos com certeza vai ter Very Happy
Obrigado pela atenção

RafaelCazarotto

Ranking : Nota C
Número de Mensagens : 564
Idade : 19
Data de inscrição : 15/03/2012
Notas recebidas : D-D-D-C-C-B
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Velocidade relativa á rampa

Mensagem por Rodrigo Santiago em Sex 28 Dez 2012, 07:45

Bem... e meio dificil mais eu vo tentar explicar.

1 caso:
A rampa deve ter uma variavel com seu angulo.
Quando a bolinha colidir, use move to contact e elimine a gravity, vspeed e hspeed, e coloque y-2 pra evitar erros.
Dai defina o angulo da gravity igual ao angulo da ranpa.
Defina a velocidade da gravity como:
cos(degtorad(angulo))*velocidade padrao da gravity.
use place free para saber se a bolinha ja esta livre da ranpa com y+3.

obs:o angulo da rampa se mede ao inverso, en vez de colocar -45 use 45.
ao passar o angulo da gravity e so reinverter.
o angulo dentro do cos deve ser o angulo original da rampa.
eu n tenho certeza se vai da certo. ;-)

2 caso:

crie um objeto retangular horizontalmente e coloque o centro da sprite no centro.
tenha 2 variaveis pesol e pesor.
todos os objetos que colidem devem ter peso simbolico.
em toda colisao, pare o objeto q colidio, e use esse calculo:
dist=point_distance(x,y,rampa.x,rampa.y)
if dist >0 rampa.pesor=peso*dist
else rampa.pesol= -peso*dist
pronto! agora vc tem os pesos de cada lado e vc pode usar o calculo q quiser.
espero ter ajudado

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: Velocidade relativa á rampa

Mensagem por RafaelCazarotto em Sex 28 Dez 2012, 22:30

ajudou sim Very Happy, no primeiro caso nao deu muito certro o codigo, mas deu sinau que quase funcionou, é só dar uma ajeitada, isso eu fasso Very Happy, no caso 2 ainda nao testei talvez amanha eu teste. mas Vlw

RafaelCazarotto

Ranking : Nota C
Número de Mensagens : 564
Idade : 19
Data de inscrição : 15/03/2012
Notas recebidas : D-D-D-C-C-B
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Velocidade relativa á rampa

Mensagem por William Lima em Sab 29 Dez 2012, 00:45

Pode fazer sensores para perceber o angulo da rampa, e depois fazer usar o
"lengthdir_x(len,dir)"para definir a velocidade.

Vamos fazer os sensores, no step:
Código:

var OBJrampa, Lc, Rc, maxvel, velocidade;
OBJrampa=obj_rampa//substitua obj_rampa pelo objeto que deseja ver o angulo, coloque os outros objetos "rampa" como parentes desse
maxvel=6//aqui mude 6 para a velocidade máxima
Lc=0

if collision_line(x-sprite_xoffset-2,y-sprite_yoffset,x-sprite_xoffset,y-sprite_yoffset+sprite_height+10,OBJrampa,0,1)
{while !collision_line(x-sprite_xoffset-2,y-sprite_yoffset,x-sprite_xoffset,y-sprite_yoffset+sprite_height+Lc,OBJrampa,0,1){Lc+=1}}else{Lc=10}

Rc=0
if collision_line(x-sprite_xoffset+sprite_width+2,y-sprite_yoffset,x-sprite_xoffset+sprite_width+2,y-sprite_yoffset+sprite_height+10,OBJrampa,0,1)
{while !collision_line(x-sprite_xoffset+sprite_width+2,y-sprite_yoffset,x-sprite_xoffset+sprite_width+2,y-sprite_yoffset+sprite_height+Rc,OBJrampa,0,1){Rc+=1}}else{Lc=10}

velocidade=lengthdir_x(maxvel,point_direction(x-sprite_xoffset-2,Lc,x-sprite_xoffset+sprite_width+2),Rc)//velocidade é a velocidade que ele ficara de acordo com o angulo

Pode estar confuso pelo fato de que eu tentei deixar o código bem flexível...
A variável final retornará a velocidade que o objeto ficará, podes usar da seguinte forma:
Código:

//x+= velocidade ou x-=velocidade
//não sei como fazes para o objeto subir a rampa

Enfim, não testei o código, é provável que funcione mas pode ocorrer o contrário.

William Lima

Ranking : Nota A
Número de Mensagens : 426
Idade : 22
Data de inscrição : 10/09/2010
Notas recebidas : C+A+A+B+A
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 2
   : 0

http://williammustaffa.blogspot.com

Voltar ao Topo Ir em baixo

Re: Velocidade relativa á rampa

Mensagem por Conteúdo patrocinado Hoje à(s) 13:44


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum