b3dCreateVehicle

Creates a wheeled vehicle physics body with suspension system attached to an entity. Takes entityHandle (entity to attach vehicle to), mass (vehicle mass in kg), suspensionMinLength/suspensionMaxLength (suspension travel limits in units), suspensionFrequency (suspension spring frequency in Hz), suspensionDamping (suspension damping ratio 0-1), visualBottomOffset (visual mesh offset from physics bottom). Returns vehicle handle for use with vehicle functions.

3D Graphics

Parameters & Returns

Parameters

entityHandle Int
mass Double
suspensionMinLength Double
suspensionMaxLength Double
suspensionFrequency Double
suspensionDamping Double
visualBottomOffset Double

Returns

Int

Quick Summary

Creates a wheeled vehicle physics body with suspension system attached to an entity. Takes entityHandle (entity to attach vehicle to), mass (vehicle mass in kg), suspensionMinLength/suspensionMaxLength (suspension travel limits in units), suspensionFrequency (suspension spring frequency in Hz), suspensionDamping (suspension damping ratio 0-1), visualBottomOffset (visual mesh offset from physics bottom). Returns vehicle handle for use with vehicle functions.

Technical Exegesis...

Creates a wheeled vehicle physics body with suspension system attached to an entity.

Example

Example.bam
; Create a basic car with 4 wheels
mesh = b3dLoadMesh("car.glb", 1, 0)
b3dPositionEntity(mesh, 0, 5, 0)

; Create vehicle body (1500 kg car with balanced suspension)
vehicle = b3dCreateVehicle(mesh, 1500.0, 0.3, 0.5, 2.0, 0.6, 0.0)

; Add 4 wheels (front-left, front-right, rear-left, rear-right)
wheelFL = b3dAddVehicleWheel(vehicle, -0.9, 0.0,  1.5, 0.4, 0.3, 0.3, 0.5, 2.0, 0.6)
wheelFR = b3dAddVehicleWheel(vehicle,  0.9, 0.0,  1.5, 0.4, 0.3, 0.3, 0.5, 2.0, 0.6)
wheelRL = b3dAddVehicleWheel(vehicle, -0.9, 0.0, -1.5, 0.4, 0.3, 0.3, 0.5, 2.0, 0.6)
wheelRR = b3dAddVehicleWheel(vehicle,  0.9, 0.0, -1.5, 0.4, 0.3, 0.3, 0.5, 2.0, 0.6)

; Configure engine (500 Nm max torque, 1000-6000 RPM range)
b3dSetVehicleEngine(vehicle, 500.0, 1000.0, 6000.0)

; Configure transmission (clutch strength 0.5)
b3dSetVehicleTransmission(vehicle, 0.5)

; Add front differential
b3dAddVehicleDifferential(vehicle, wheelFL, wheelFR, 1.5)

; Add rear differential
b3dAddVehicleDifferential(vehicle, wheelRL, wheelRR, 3.0)

; Configure front wheels for steering
b3dSetVehicleWheelSteering(vehicle, wheelFL, 35.0)
b3dSetVehicleWheelSteering(vehicle, wheelFR, 35.0)

; Configure all wheels for braking
For i = 0 To 3
    b3dSetVehicleWheelBraking(vehicle, i, 1500.0, 3000.0)
Next

; Finalize vehicle to activate physics
b3dFinalizeVehicle(vehicle)

; Control vehicle
Repeat
    forward = BBR_GetKey(200) - BBR_GetKey(208)  ; Up/Down arrows
    right = BBR_GetKey(205) - BBR_GetKey(203)    ; Right/Left arrows
    handBrake = BBR_GetKey(57)                   ; Space

    b3dSetVehicleInput(vehicle, forward, right, handBrake)

    b3dRenderWorld()
    BBR_Flip()
Until BBR_GetKey(1)