Checks if vehicle wheel is in contact with ground.
Takes vehicleHandle (vehicle from b3dCreateVehicle), wheelIndex (wheel index from b3dAddVehicleWheel).
Returns 1 if wheel touching ground, 0 if wheel in air.
3D Graphics
Parameters & Returns
Parameters
vehicleHandleInt
wheelIndexInt
Returns
Int
Quick Summary
Checks if vehicle wheel is in contact with ground.
Takes vehicleHandle (vehicle from b3dCreateVehicle), wheelIndex (wheel index from b3dAddVehicleWheel).
Returns 1 if wheel touching ground, 0 if wheel in air.
Technical Exegesis...
Checks if vehicle wheel is in contact with ground. Takes vehicleHandle (vehicle created with b3dCreateVehicle), wheelIndex (0-based wheel index from b3dAddVehicleWheel). Returns 1 if wheel currently touching ground surface (suspension raycast hit geometry), 0 if wheel in air (no ground contact, vehicle jumping or suspended). Queries Jolt suspension raycast state for specified wheel.
Checks if vehicle wheel is in contact with ground. Takes vehicleHandle (vehicle created with b3dCreateVehicle), wheelIndex (0-based wheel index from b3dAddVehicleWheel). Returns 1 if wheel currently touching ground surface (suspension raycast hit geometry), 0 if wheel in air (no ground contact, vehicle jumping or suspended). Queries Jolt suspension raycast state for specified wheel.
Use cases: (1) Jump detection (if all wheels in air then vehicle jumping), (2) Tire effects (create dust/smoke only when wheel grounded), (3) Sound effects (tire squeal only when grounded), (4) Physics tuning (disable steering in air). Common patterns: jump check (airborne = 1, for each wheel if inContact then airborne = 0), tire smoke (if inContact and speed > 20 then createSmoke), landing detection (if wasAirborne and inContact then playLandingSound).
Wheel contact physics: suspension raycast extends from wheel position downward (raycast length = suspensionMaxLength from b3dAddVehicleWheel), raycast hits ground = wheel in contact (suspension compressed based on distance), raycast misses = wheel in air (suspension fully extended, no ground support), contact state updates each physics frame (60 Hz typical, state can change frame-to-frame).
Related: b3dAddVehicleWheel adds wheel with suspension raycast, b3dSetVehicleInput controls vehicle (steering/throttle may behave differently when airborne), b3dGetVehicleSpeed reads speed (useful for determining if jump occurred).
Example
Example.bam
; Check if vehicle is airborneFunction IsVehicleAirborne(vehicle)
For i = 0To3 ; 4-wheel vehicle
If b3dIsVehicleWheelInContact(vehicle, i) ThenReturn0 ; At least one wheel grounded
EndIfNextReturn1 ; All wheels in air
End Function; Tire smoke effectFor i = 0To3If b3dIsVehicleWheelInContact(vehicle, i) Then
speed = Abs(b3dGetVehicleSpeed(vehicle))
If speed > 20Then ; Create smoke particle at wheel position
CreateTireSmoke(vehicle, i)
EndIfEndIfNext