Existem muitos jogos de corrida de carros para PC em torno dos quais este assistente de direção exclusivo ajuda a frear o carro para que você possa ligá-lo com segurança. Enquanto em alguns jogos é apenas uma 'assistência', ele apenas ajuda o freio do carro, mas não garante uma curva segura. Enquanto em outros, a assistência à frenagem ajudará você a obter uma curva segura. Fiquei me perguntando o que poderia ser o algoritmo que é seguido para alcançá-lo.
Um algoritmo muito básico que eu conseguia pensar era,
- Pré-determine a distância de frenagem de um carro ideal para cada curva da pista, dependendo do raio da curva, e comece a frear de acordo. Por exemplo, para uma curva menor que 90 o , o carro começaria a frear automaticamente a 50m de distância do início da curva.
Um algoritmo mais avançado, que garantiria uma curva segura, poderia ser
- Pré-determine a velocidade do carro no início de cada turno, individualmente para cada pista, turno e carro. Além disso, pré-determine a taxa de desaceleração de cada carro individualmente, o que varia devido ao desempenho do carro.
- A assistência de frenagem continuaria registrando a velocidade do carro em um determinado instante de tempo.
- Comece a frear o carro adequadamente, para que ele atinja a velocidade exata necessária no início da curva.
- Por exemplo, permita que a velocidade de um carro em particular no início de uma volta, 43m de raio, seja 120 km / h. Deixe a taxa de desaceleração do carro ser de 200 km / h 2 . Se, em algum instante, a velocidade do carro for 200 km / h, o carro começará a frear automaticamente a 400 m desde o início da curva.
Respostas:
Fundamentalmente, a assistência à frenagem funciona comparando a velocidade do carro do jogador com a velocidade do ponto mais próximo na linha de corrida ideal da pista e aplicando automaticamente os freios, conforme necessário, para reduzir a velocidade do carro do jogador para coincidir com a velocidade especificada na linha de corrida ideal. É exatamente como escrever a IA do carro de corrida, mas apenas aplicando as saídas de freio da IA, não o acelerador ou a direção.
Isso (obviamente) exige que você tenha dados sobre uma linha de corrida ideal, para poder dizer quanto o jogador precisa desacelerar. Essa linha de corrida geralmente é gerada computacionalmente durante o desenvolvimento e é enviada com o jogo como um dado estático, em vez de ser calculado em tempo de execução. (Eu trabalhei em jogos que geravam dinamicamente uma linha de corrida na frente do jogador, mas isso era computacionalmente caro, e eu não o recomendo, a menos que você tenha faixas que mudam de maneiras imprevisíveis)
fonte
Você pode calcular o caminho que o carro descreveria se girar com a velocidade atual sem deriva. Em seguida, aplique os freios na proporção do d distante , que é a distância medida do caminho calculado até a curva.
fonte