Veículos
A Anastacio cria o veículo sozinha a partir do painel Physics > Vehicle. Você só configura as rodas e anexa um controle.
1. Monte o carro
Seção intitulada “1. Monte o carro”Você precisa de um chassi (a carroceria) e um objeto para cada roda.
- Selecione o chassi. Em Properties > Physics, use Rigid Body e ligue o veículo no painel Vehicle.
- Na lista de rodas, adicione uma entrada para cada roda e escolha o objeto dela.
- Em cada roda, ajuste raio, suspensão, se ela esterça (as da frente) e se ela traciona.
2. Dirija com o componente pronto
Seção intitulada “2. Dirija com o componente pronto”Anexe o componente VehiclePlayerComponent (arquivo vehicle_player_component.py do demo) no chassi.
- W acelera, S dá ré, A/D esterçam;
- Espaço freia, Shift esquerdo é o freio de mão;
- com marchas cadastradas no painel Vehicle, o câmbio troca sozinho (ou com E/Q no manual).
O componente publica as propriedades vehicle_speed_kmh, vehicle_rpm e vehicle_gear no chassi, úteis para um velocímetro.
3. Ou controle pelo Python
Seção intitulada “3. Ou controle pelo Python”getVehicle() devolve o veículo do chassi (KX_VehicleWrapper). Um controle mínimo:
import Rangefrom Range import events, logic
class DirigirSimples(Range.types.KX_PythonComponent): args = {}
def start(self, args): self.carro = self.object.getVehicle()
def update(self): if self.carro is None: return tecla = logic.keyboard.inputs forca = 0.0 if tecla[events.WKEY].active: forca = -1500.0 elif tecla[events.SKEY].active: forca = 800.0 volante = 0.0 if tecla[events.AKEY].active: volante = 0.4 elif tecla[events.DKEY].active: volante = -0.4
for roda in range(self.carro.getNumWheels()): self.carro.applyEngineForce(forca, roda) self.carro.applyBraking(0.0, roda) self.carro.setSteeringValue(volante, 0) self.carro.setSteeringValue(volante, 1)Anexe no chassi. As rodas 0 e 1 são as duas primeiras da lista do painel (as que esterçam).
Salvar o acerto do carro
Seção intitulada “Salvar o acerto do carro”vehicle.savePreset("//acerto.json") grava massa, suspensão, atrito e rodas num arquivo. vehicle.loadPreset(...) reaplica o acerto no mesmo carro, por exemplo para trocar entre “asfalto” e “terra”.
