Como você manter uma vista de cima de um trem nos trilhos com o motor de física Box2D?

StackOverflow https://stackoverflow.com/questions/616375

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu acho que seria divertido para modelar uma vista de cima de um trem após uma trilha, atravessando interruptores e assim por diante, usando uma biblioteca física como Box2D. Que articulações e motores que eu preciso para fazer este trabalho?

Estou curioso sobre como implementar as forças necessárias para fazer o carro seguir a trilha ranhura para que ele possa esbarrar em outros carros do trem, pedestres, DeLoreans etc. Basta dizer "o carro está agora na ranhura (t)" para cada passo de tempo criaria forças excessivas no motor de física. Se bem entendi, você tem que ficar o carro para a pista com uma força, restringir o seu ângulo a tender para paralelo com a pista com outro (ou furar a frente e de trás do carro para a pista com duas forças), e criar outra força para impulsionar o trem para a frente. Eu estou procurando alguns detalhes sobre como realizar essas coisas.

Foi útil?

Solução

Eu acredito que seria mais fácil sem a física "reais", como o movimento da bola de jogos como Luxor ou Tumble erros. Significado:. Deixar o trem seguir uma ranhura que é definida pelas faixas

Usando phyiscs é provavelmente um exagero para fazer um trem seguir uma pista e poderia levar a todos os tipos de efeitos colaterais indesejáveis, incluindo movimento espasmódico, descarrilamento de trem, trem ficando preso em cruzamentos, etc.

Você ainda pode se juntar aos vagões individuais em conjunto, utilizando articulações físicas, no entanto. Apenas certifique-se que somente a locomotiva fica forças de aceleração, o resto do trem apenas segue ou é empurrado, mas estadias no spline.

Outras dicas

Por que você está preocupado com mantendo- "nos trilhos"? Onde é que vai ir? Gravidade deve mantê-lo para baixo, objeto intersecção deve mantê-lo, e assim os únicos sentidos que você precisa se preocupar com são para a frente e para trás. É aí que um motor entra, e está feito. O resto é decoração.

Em resposta a edição do problema:

Siderails. E ter o trem de longa suficiente o bastante / rígida em relação a sua largura que você pode navegar cruzamentos (torná-los mais perto de ângulos retos para minimizar os problemas de cruzamento.

Uma visão de cima para baixo (ou seja, vendo o trem do céu) não realmente necessitam de um motor de física 2d - se eu entendi corretamente. Na verdade, parece que ele não seria realmente ajudar com o problema (se você quiser uma simulação de trem), mas, em seguida, talvez você só quero testá-lo para se divertir. :)

No entanto, o que sobre a colocação de algo como uma articulação deslizante no trem e os carros, e um motor na locomotiva. A junta deslizante pode precisar de alguma aplicação especial; você provavelmente vai querer correr o trem ao longo de uma ranhura e não um segmento de linhas retas, certo?

Algum tipo de junta de bola iria ligar os carros juntos.

A implementação não é tão toughand eu era capaz de protótipo algo em poucas horas que faz o trabalho básico. Ele vai exigir muito trabalho para torná-lo funcionar sem problemas, mas é essencialmente apenas "siderails."

Ser top-down que você, obviamente, primeiro é necessário desligar a gravidade em Box2D. Em segundo lugar, construir um trem. rodas do trem tratar como rodas de carro e ele vai de repente ficar muito mais simples. Para faixas que você tem algumas opções:

  • Criar seu próprio objeto do jogo (não no mundo box2d), que é uma simples linha do trem, então, "seguir" (você pode usar motores nas rodas de trem para "boi" em direção à linha). Em seguida, basta sobrepor a linha com alguns bons largas gráficos "ferroviários" e você tem um sistema bem falsificado. Diga as rodas para desligar se desvia muito longe da linha e pronto, você tem um descarrilamento.

  • Criar trilhos físicos reais - trilhos fora (como siderails) que os trens "rodas" irá chocar. Eles terão que ter curvas suaves, neste caso, que poderia ser muito difícil dados os recursos limitados que você tem (simulando uma lenta curva agradável fora das caixas em Box2D é áspera no processador)

Em seguida, basta deixar o seu go trem!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top