Vehicles
První vozidlo
Vytvoří, ovládá a zpřístupní stav jednoduchého čtyřkolového auta v kompletním managed workflow.
Příklad používá lokální +Y jako směr dopředu, snižuje těžiště a nechává build() vytvořit praktické diferenciály z kol označených jako driven.
Create event#
jolt_start({ gravity_z: -9.81 });
ground = jolt_box_create_static(0, 0, -0.5, 20, 200, 1);
chassis = jolt_box_create_dynamic(0, 0, 1.1, 1.8, 4.0, 0.5, {
mass: 1200,
center_of_mass_offset: { x:0, y:0, z:-0.25 }
});
car = jolt_vehicle(chassis, {
collision: JOLT_VEHICLE_COLLISION_RAY,
engine: { max_torque: 500 },
transmission: { automatic: true }
});
car.add_wheel(-0.8, 1.4, -0.2, { radius:0.35, steering:true, driven:true });
car.add_wheel( 0.8, 1.4, -0.2, { radius:0.35, steering:true, driven:true });
car.add_wheel(-0.8, -1.4, -0.2, { radius:0.35, driven:true, handbrake:true });
car.add_wheel( 0.8, -1.4, -0.2, { radius:0.35, driven:true, handbrake:true });
car.add_anti_roll_bar(0, 1, 1000);
car.add_anti_roll_bar(2, 3, 1000);
if (!car.build()) {
show_error(jolt_get_error_message(), true);
}Step event#
var throttle = keyboard_check(vk_up) - keyboard_check(vk_down);
var steering = keyboard_check(vk_right) - keyboard_check(vk_left);
var brake = keyboard_check(vk_space);
var handbrake = keyboard_check(ord("X"));
car.set_inputs(throttle, steering, brake, handbrake);
jolt_update();Cleanup event#
// jolt_stop() bezpečně zničí také managed vozidlo a chassis.
jolt_stop();Co ověřit#
- car je struct a car.build() vrátí true.
- Po usazení chassis hlásí nejméně tři až čtyři kola has_contact.
- get_forward_speed() je při jízdě vpřed kladné a při automatické zpátečce záporné.
- Transformace kol se pro rendering čtou po jolt_update().