From 973cdb9506933f90dcc4f6c8a006213c4021bfa5 Mon Sep 17 00:00:00 2001 From: sergeypdev Date: Sat, 28 Jun 2025 18:01:12 +0400 Subject: [PATCH] Better collision match --- assets/ice_cream_truck_body_high_convex.obj | 18 ++++++++++++++ assets/ice_cream_truck_body_low_convex.obj | 21 +++++++++++++++++ game/game.odin | 26 +++++++++++++++++---- src_assets/ice_cream_truck.blend | 4 ++-- src_assets/ice_cream_truck.blend1 | 4 ++-- 5 files changed, 64 insertions(+), 9 deletions(-) create mode 100644 assets/ice_cream_truck_body_high_convex.obj create mode 100644 assets/ice_cream_truck_body_low_convex.obj diff --git a/assets/ice_cream_truck_body_high_convex.obj b/assets/ice_cream_truck_body_high_convex.obj new file mode 100644 index 0000000..4d7b618 --- /dev/null +++ b/assets/ice_cream_truck_body_high_convex.obj @@ -0,0 +1,18 @@ +# Blender 4.4.3 +# www.blender.org +o BodyHigh_Col +v 1.049841 1.503469 1.709093 +v 1.049841 1.503469 -3.470500 +v -1.049841 1.503469 1.709093 +v -1.049841 1.503469 -3.470500 +v 1.049841 2.742037 1.438413 +v 1.049841 2.742037 -3.470500 +v -1.049841 2.742037 1.438413 +v -1.049841 2.742037 -3.470500 +s 0 +f 2 1 3 4 +f 6 8 7 5 +f 4 3 7 8 +f 3 1 5 7 +f 2 4 8 6 +f 1 2 6 5 diff --git a/assets/ice_cream_truck_body_low_convex.obj b/assets/ice_cream_truck_body_low_convex.obj new file mode 100644 index 0000000..ab46a30 --- /dev/null +++ b/assets/ice_cream_truck_body_low_convex.obj @@ -0,0 +1,21 @@ +# Blender 4.4.3 +# www.blender.org +o BodyLow_Col +v 1.049841 0.369559 2.380744 +v 1.049841 1.130518 2.380744 +v 1.049841 1.503469 1.709093 +v 1.049841 0.356804 -3.483506 +v 1.049841 1.503469 -3.470500 +v -1.049841 0.369559 2.380744 +v -1.049841 1.130518 2.380744 +v -1.049841 1.503469 1.709093 +v -1.049841 0.356804 -3.483506 +v -1.049841 1.503469 -3.470500 +s 0 +f 1 6 9 4 +f 3 2 1 4 5 +f 6 1 2 7 +f 4 9 10 5 +f 5 10 8 3 +f 8 10 9 6 7 +f 8 7 2 3 diff --git a/game/game.odin b/game/game.odin index 3da61f9..a75c3cf 100644 --- a/game/game.odin +++ b/game/game.odin @@ -401,7 +401,14 @@ update_world :: proc(world: ^World, dt: f32, config: World_Update_Config) { ) } - car_convex := assets.get_convex(&g_mem.assetman, "assets/ice_cream_truck_convex.obj") + body_low_convex := assets.get_convex( + &g_mem.assetman, + "assets/ice_cream_truck_body_low_convex.obj", + ) + body_high_convex := assets.get_convex( + &g_mem.assetman, + "assets/ice_cream_truck_body_high_convex.obj", + ) cone_convex := assets.get_convex(&g_mem.assetman, "assets/cone_convex.obj") left_fence_convex := assets.get_convex(&g_mem.assetman, "assets/left_fence_convex.obj") right_fence_convex := assets.get_convex(&g_mem.assetman, "assets/right_fence_convex.obj") @@ -423,10 +430,19 @@ update_world :: proc(world: ^World, dt: f32, config: World_Update_Config) { { rel_q = linalg.QUATERNIONF32_IDENTITY, inner_shape = physics.Shape_Convex { - mesh = car_convex.mesh, - center_of_mass = car_convex.center_of_mass, - inertia_tensor = auto_cast car_convex.inertia_tensor, - total_volume = car_convex.total_volume, + mesh = body_low_convex.mesh, + center_of_mass = body_low_convex.center_of_mass, + inertia_tensor = auto_cast body_low_convex.inertia_tensor, + total_volume = body_low_convex.total_volume, + }, + }, + { + rel_q = linalg.QUATERNIONF32_IDENTITY, + inner_shape = physics.Shape_Convex { + mesh = body_high_convex.mesh, + center_of_mass = body_high_convex.center_of_mass, + inertia_tensor = auto_cast body_high_convex.inertia_tensor, + total_volume = body_high_convex.total_volume, }, }, { diff --git a/src_assets/ice_cream_truck.blend b/src_assets/ice_cream_truck.blend index a264513..b79e9b0 100644 --- a/src_assets/ice_cream_truck.blend +++ b/src_assets/ice_cream_truck.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7e26111571083d47f1551c8c8f7cb162e117adc97020f88fb40e50ea9fbe1236 -size 2336889 +oid sha256:f55c53880861b9f07132c438c397cc111ec31b60984a61549844b1b58f96dcf7 +size 2340991 diff --git a/src_assets/ice_cream_truck.blend1 b/src_assets/ice_cream_truck.blend1 index a3d6f5f..a264513 100644 --- a/src_assets/ice_cream_truck.blend1 +++ b/src_assets/ice_cream_truck.blend1 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b72e17151065e33a5c91331639f3d135890440d3d60dd7d85a1d2666f8433bca -size 2336913 +oid sha256:7e26111571083d47f1551c8c8f7cb162e117adc97020f88fb40e50ea9fbe1236 +size 2336889