Use Jolt Physics in all 3D demos that use physics, improve physics tests demos (#1195)

- Add options for physics ticks per second, time scale, max physics steps per frame
  and physics interpolation to the 2D and 3D physics tests demos.
  - Physics ticks per second are always multiplied by time scale so that
    time scale does not affect the physics simulation quality.
- Enable 4× MSAA for better debug shape display. Remove meshes/lights as
  the debug collision fill make these unnecessary.
  - Switch to the Mobile rendering method in the 2D physics tests demo
    to allow for 2D MSAA, as it's not implemented in Compatibility yet.
- Improve collision shapes color in the 2D and 3D physics tests demos
  for better visibility. Each PhysicsBody type now has its own collision
  shape color.
This commit is contained in:
Hugo Locurcio
2025-04-21 21:59:31 +02:00
committed by GitHub
parent 819d201cc4
commit a531235db3
70 changed files with 663 additions and 294 deletions

View File

@@ -12,10 +12,10 @@ They can be used for different purpose:
Language: GDScript Language: GDScript
Renderer: Compatibility Renderer: Mobile
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/2726 Check out this demo on the asset library: https://godotengine.org/asset-library/asset/2726
## Screenshots ## Screenshots
![Screenshot](screenshots/screenshot.png) ![Screenshot](screenshots/physics_tests.webp)

View File

@@ -7,12 +7,8 @@ texture = ExtResource("1")
0:0/next_alternative_id = 8 0:0/next_alternative_id = 8
0:0/0 = 0 0:0/0 = 0
0:0/0/modulate = Color(0, 0, 1, 1) 0:0/0/modulate = Color(0, 0, 1, 1)
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
0:0/0/physics_layer_0/angular_velocity = 0.0
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:0/0 = 0 1:0/0 = 0
1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
1:0/0/physics_layer_0/angular_velocity = 0.0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:0/0/physics_layer_0/polygon_0/one_way = true 1:0/0/physics_layer_0/polygon_0/one_way = true

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=11 format=3 uid="uid://6a0nxwkgf5dq"] [gd_scene load_steps=15 format=3 uid="uid://6a0nxwkgf5dq"]
[ext_resource type="Script" uid="uid://db4ofia8ieq55" path="res://utils/label_fps.gd" id="1"] [ext_resource type="Script" uid="uid://db4ofia8ieq55" path="res://utils/label_fps.gd" id="1"]
[ext_resource type="Script" uid="uid://dustsplck84ac" path="res://utils/label_version.gd" id="2"] [ext_resource type="Script" uid="uid://dustsplck84ac" path="res://utils/label_version.gd" id="2"]
@@ -6,8 +6,12 @@
[ext_resource type="Script" uid="uid://cw0pi4lgucxdr" path="res://tests_menu.gd" id="4"] [ext_resource type="Script" uid="uid://cw0pi4lgucxdr" path="res://tests_menu.gd" id="4"]
[ext_resource type="Script" uid="uid://bjl0grl2gv43y" path="res://utils/label_test.gd" id="5"] [ext_resource type="Script" uid="uid://bjl0grl2gv43y" path="res://utils/label_test.gd" id="5"]
[ext_resource type="Script" uid="uid://b4rnndt2dw5g1" path="res://utils/label_pause.gd" id="6"] [ext_resource type="Script" uid="uid://b4rnndt2dw5g1" path="res://utils/label_pause.gd" id="6"]
[ext_resource type="Script" uid="uid://7kql0xtuc7ny" path="res://utils/ticks_per_second.gd" id="8_dg77c"]
[ext_resource type="Script" uid="uid://beqnv31yip0bl" path="res://utils/time_scale.gd" id="9_ycdy4"]
[ext_resource type="Script" uid="uid://k8crlob60yte" path="res://utils/container_log.gd" id="10"] [ext_resource type="Script" uid="uid://k8crlob60yte" path="res://utils/container_log.gd" id="10"]
[ext_resource type="Script" uid="uid://cvoeuonqmsye1" path="res://utils/max_steps_per_frame.gd" id="10_w48qg"]
[ext_resource type="Script" uid="uid://b2t0e1okrl3j4" path="res://utils/scroll_log.gd" id="11"] [ext_resource type="Script" uid="uid://b2t0e1okrl3j4" path="res://utils/scroll_log.gd" id="11"]
[ext_resource type="Script" uid="uid://ijebwwx4t8et" path="res://utils/physics_interpolation.gd" id="11_ycdy4"]
[ext_resource type="Script" uid="uid://db80201lynb6l" path="res://tests.gd" id="12"] [ext_resource type="Script" uid="uid://db80201lynb6l" path="res://tests.gd" id="12"]
[sub_resource type="StyleBoxFlat" id="1"] [sub_resource type="StyleBoxFlat" id="1"]
@@ -29,7 +33,7 @@ offset_left = 10.0
offset_top = 10.0 offset_top = 10.0
offset_right = 125.0 offset_right = 125.0
offset_bottom = 30.0 offset_bottom = 30.0
text = "TESTS" text = "Tests"
flat = false flat = false
script = ExtResource("4") script = ExtResource("4")
@@ -39,7 +43,8 @@ offset_left = 157.0
offset_top = 13.0 offset_top = 13.0
offset_right = 646.0 offset_right = 646.0
offset_bottom = 27.0 offset_bottom = 27.0
text = "P - TOGGLE PAUSE / R - RESTART / C - TOGGLE COLLISION / F - TOGGLE FULL SCREEN / ESC - QUIT" theme_override_constants/outline_size = 4
text = "P: Toggle Pause | R: Restart | C: Toggle Collision | F: Toggle Fullscreen | ESC: Quit"
[node name="LabelFPS" type="Label" parent="."] [node name="LabelFPS" type="Label" parent="."]
layout_mode = 1 layout_mode = 1
@@ -47,9 +52,9 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 10.0 offset_left = 10.0
offset_top = -19.0 offset_top = -36.0
offset_right = 50.0 offset_right = 55.0
offset_bottom = -5.0 offset_bottom = -13.0
grow_vertical = 0 grow_vertical = 0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4 theme_override_constants/outline_size = 4
@@ -62,10 +67,11 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 10.0 offset_left = 10.0
offset_top = -56.0 offset_top = -64.0
offset_right = 128.0 offset_right = 128.0
offset_bottom = -33.0 offset_bottom = -41.0
grow_vertical = 0 grow_vertical = 0
theme_override_colors/font_color = Color(1, 1, 1, 0.752941)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4 theme_override_constants/outline_size = 4
text = "Physics engine:" text = "Physics engine:"
@@ -77,13 +83,14 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 10.0 offset_left = 10.0
offset_top = -84.0 offset_top = -92.0
offset_right = 125.0 offset_right = 125.0
offset_bottom = -61.0 offset_bottom = -69.0
grow_vertical = 0 grow_vertical = 0
theme_override_colors/font_color = Color(1, 1, 1, 0.752941)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4 theme_override_constants/outline_size = 4
text = "Godot Version:" text = "Godot version:"
script = ExtResource("2") script = ExtResource("2")
[node name="LabelTest" type="Label" parent="."] [node name="LabelTest" type="Label" parent="."]
@@ -92,9 +99,9 @@ anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 10.0 offset_left = 10.0
offset_top = -112.0 offset_top = -120.0
offset_right = 50.0 offset_right = 50.0
offset_bottom = -89.0 offset_bottom = -97.0
grow_vertical = 0 grow_vertical = 0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4 theme_override_constants/outline_size = 4
@@ -112,10 +119,122 @@ offset_top = 48.0
offset_right = 62.0 offset_right = 62.0
offset_bottom = 96.0 offset_bottom = 96.0
grow_horizontal = 2 grow_horizontal = 2
theme_override_font_sizes/font_size = 32 theme_override_constants/outline_size = 6
text = "PAUSED" theme_override_font_sizes/font_size = 24
text = "Paused"
script = ExtResource("6") script = ExtResource("6")
[node name="Options" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -392.0
offset_top = 56.0
offset_right = -16.0
offset_bottom = 168.0
grow_horizontal = 0
theme_override_constants/separation = 6
[node name="TicksPerSecond" type="HBoxContainer" parent="Options"]
layout_mode = 2
tooltip_text = "Higher values make physics more precise at the cost of higher CPU utilization.
Low values may result in objects phasing through each other (tunneling).
Physics ticks per second are automatically multiplied by Time Scale in this project."
theme_override_constants/separation = 10
script = ExtResource("8_dg77c")
[node name="Label" type="Label" parent="Options/TicksPerSecond"]
custom_minimum_size = Vector2(164, 0)
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Ticks per Second"
[node name="HSlider" type="HSlider" parent="Options/TicksPerSecond"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
size_flags_vertical = 4
min_value = 10.0
max_value = 240.0
step = 10.0
value = 60.0
[node name="Value" type="Label" parent="Options/TicksPerSecond"]
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "60"
[node name="TimeScale" type="HBoxContainer" parent="Options"]
layout_mode = 2
tooltip_text = "Game speed multiplier. Physics ticks per second are
automatically multiplied by Time Scale in this project
to ensure accurate simulation regardless of time scale."
theme_override_constants/separation = 10
script = ExtResource("9_ycdy4")
[node name="Label" type="Label" parent="Options/TimeScale"]
custom_minimum_size = Vector2(164, 0)
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Time Scale"
[node name="HSlider" type="HSlider" parent="Options/TimeScale"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
size_flags_vertical = 4
max_value = 5.0
step = 0.5
value = 0.5
[node name="Value" type="Label" parent="Options/TimeScale"]
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "1.0×"
[node name="MaxStepsPerFrame" type="HBoxContainer" parent="Options"]
layout_mode = 2
tooltip_text = "Physics will slow down if more physics steps
than this value need to be simulated in a
single rendered frame."
theme_override_constants/separation = 10
script = ExtResource("10_w48qg")
[node name="Label" type="Label" parent="Options/MaxStepsPerFrame"]
custom_minimum_size = Vector2(164, 0)
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Max Steps per Frame"
[node name="HSlider" type="HSlider" parent="Options/MaxStepsPerFrame"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
size_flags_vertical = 4
min_value = 1.0
max_value = 20.0
value = 8.0
[node name="Value" type="Label" parent="Options/MaxStepsPerFrame"]
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "8"
[node name="PhysicsInterpolation" type="CheckButton" parent="Options"]
custom_minimum_size = Vector2(217, 0)
layout_mode = 2
size_flags_horizontal = 0
tooltip_text = "Smooths out rendering regardless of the physics tick rate.
This is a purely visual effect and has no impact on the physics simulation."
theme_override_constants/outline_size = 4
button_pressed = true
text = "Physics Interpolation"
script = ExtResource("11_ycdy4")
[node name="PanelLog" type="Panel" parent="."] [node name="PanelLog" type="Panel" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = 3 anchors_preset = 3
@@ -127,6 +246,7 @@ offset_left = -630.0
offset_top = -251.0 offset_top = -251.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
mouse_filter = 1
theme_override_styles/panel = SubResource("1") theme_override_styles/panel = SubResource("1")
[node name="ButtonClear" type="Button" parent="PanelLog"] [node name="ButtonClear" type="Button" parent="PanelLog"]
@@ -136,8 +256,8 @@ anchor_left = 1.0
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -48.0 offset_left = -65.0
offset_top = -25.0 offset_top = -36.0
offset_right = -5.0 offset_right = -5.0
offset_bottom = -5.0 offset_bottom = -5.0
grow_horizontal = 0 grow_horizontal = 0
@@ -152,13 +272,14 @@ anchor_left = 1.0
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -261.0 offset_left = -269.0
offset_top = -35.0 offset_top = -35.0
offset_right = -62.0 offset_right = -70.0
offset_bottom = -4.0 offset_bottom = -4.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
focus_mode = 0 focus_mode = 0
button_pressed = true
text = "Automatic Scrolling" text = "Automatic Scrolling"
[node name="ScrollLog" type="ScrollContainer" parent="PanelLog"] [node name="ScrollLog" type="ScrollContainer" parent="PanelLog"]
@@ -182,5 +303,9 @@ layout_mode = 2
text = "Log start" text = "Log start"
max_lines_visible = 5 max_lines_visible = 5
[connection signal="value_changed" from="Options/TicksPerSecond/HSlider" to="Options/TicksPerSecond" method="_on_h_slider_value_changed"]
[connection signal="value_changed" from="Options/TimeScale/HSlider" to="Options/TimeScale" method="_on_h_slider_value_changed"]
[connection signal="value_changed" from="Options/MaxStepsPerFrame/HSlider" to="Options/MaxStepsPerFrame" method="_on_h_slider_value_changed"]
[connection signal="toggled" from="Options/PhysicsInterpolation" to="Options/PhysicsInterpolation" method="_on_check_button_toggled"]
[connection signal="pressed" from="PanelLog/ButtonClear" to="PanelLog/ScrollLog/VBoxLog" method="clear"] [connection signal="pressed" from="PanelLog/ButtonClear" to="PanelLog/ScrollLog/VBoxLog" method="clear"]
[connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="_on_check_box_scroll_toggled"] [connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="_on_check_box_scroll_toggled"]

View File

@@ -24,6 +24,7 @@ System="*res://utils/system.gd"
[debug] [debug]
gdscript/warnings/untyped_declaration=1 gdscript/warnings/untyped_declaration=1
shapes/collision/shape_color=Color(0, 0.533333, 1, 1)
[display] [display]
@@ -103,5 +104,5 @@ common/physics_interpolation=true
[rendering] [rendering]
renderer/rendering_method="gl_compatibility" renderer/rendering_method="mobile"
renderer/rendering_method.mobile="gl_compatibility" anti_aliasing/quality/msaa_2d=2

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

View File

@@ -55,7 +55,7 @@ func add_shape(shape: Shape2D, shape_transform: Transform2D, color: Color) -> vo
var collision := CollisionShape2D.new() var collision := CollisionShape2D.new()
collision.shape = shape collision.shape = shape
collision.transform = shape_transform collision.transform = shape_transform
collision.modulate = color collision.debug_color = color * Color(1, 1, 1, 0.1)
_drawn_nodes.push_back(collision) _drawn_nodes.push_back(collision)
add_child(collision) add_child(collision)
@@ -70,6 +70,7 @@ func create_rigidbody(shape: Shape2D, pickable: bool = false, shape_transform: T
var collision := CollisionShape2D.new() var collision := CollisionShape2D.new()
collision.shape = shape collision.shape = shape
collision.transform = shape_transform collision.transform = shape_transform
collision.debug_color = Color.YELLOW * Color(1, 1, 1, 0.1)
var body := RigidBody2D.new() var body := RigidBody2D.new()
body.add_child(collision) body.add_child(collision)

View File

@@ -3,8 +3,9 @@
[sub_resource type="RectangleShape2D" id="1"] [sub_resource type="RectangleShape2D" id="1"]
size = Vector2(40, 40) size = Vector2(40, 40)
[node name="StackBox" type="RigidDynamicBody2D"] [node name="StackBox" type="RigidBody2D"]
position = Vector2(-180, -20) position = Vector2(-180, -20)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 0.0980392)

View File

@@ -32,6 +32,7 @@ _jump_force = 50.0
_snap_distance = 1.0 _snap_distance = 1.0
[node name="ViewportContainer" type="SubViewportContainer" parent="."] [node name="ViewportContainer" type="SubViewportContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_right = 1024.0 offset_right = 1024.0
@@ -39,9 +40,6 @@ offset_bottom = 600.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
stretch = true stretch = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Viewport" type="SubViewport" parent="ViewportContainer"] [node name="Viewport" type="SubViewport" parent="ViewportContainer"]
handle_input_locally = false handle_input_locally = false
@@ -60,6 +58,7 @@ script = ExtResource("7")
[node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/CharacterBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/CharacterBody2D"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CharacterBodyRay2D" type="CharacterBody2D" parent="ViewportContainer/Viewport"] [node name="CharacterBodyRay2D" type="CharacterBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(30, 40) position = Vector2(30, 40)
@@ -69,66 +68,63 @@ script = ExtResource("7")
[node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/CharacterBodyRay2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/CharacterBodyRay2D"]
position = Vector2(0, -2.5) position = Vector2(0, -2.5)
shape = SubResource("RectangleShape2D_scs3g") shape = SubResource("RectangleShape2D_scs3g")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CollisionShapeRay2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/CharacterBodyRay2D"] [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/CharacterBodyRay2D"]
position = Vector2(0, -2) position = Vector2(0, -2)
shape = SubResource("SeparationRayShape2D_vby12") shape = SubResource("SeparationRayShape2D_vby12")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="RigidDynamicBody2D" type="RigidDynamicBody2D" parent="ViewportContainer/Viewport"] [node name="RigidDynamicBody2D" type="RigidBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(30, 40) position = Vector2(30, 40)
collision_mask = 2147483649 collision_mask = 2147483649
physics_material_override = SubResource("1") physics_material_override = SubResource("1")
contacts_reported = 4
contact_monitor = true
lock_rotation = true lock_rotation = true
contact_monitor = true
script = ExtResource("2") script = ExtResource("2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/RigidDynamicBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/RigidDynamicBody2D"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyRay2D" type="RigidDynamicBody2D" parent="ViewportContainer/Viewport"] [node name="RigidBodyRay2D" type="RigidBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(30, 40) position = Vector2(30, 40)
collision_mask = 2147483649 collision_mask = 2147483649
physics_material_override = SubResource("1") physics_material_override = SubResource("1")
contacts_reported = 4
contact_monitor = true
lock_rotation = true lock_rotation = true
contact_monitor = true
script = ExtResource("2") script = ExtResource("2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/RigidBodyRay2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/RigidBodyRay2D"]
position = Vector2(0, -2.5) position = Vector2(0, -2.5)
shape = SubResource("RectangleShape2D_scs3g") shape = SubResource("RectangleShape2D_scs3g")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="CollisionShapeRay2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/RigidBodyRay2D"] [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/RigidBodyRay2D"]
position = Vector2(0, -2) position = Vector2(0, -2)
shape = SubResource("SeparationRayShape2D_vby12") shape = SubResource("SeparationRayShape2D_vby12")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="Wall1" type="StaticBody2D" parent="ViewportContainer/Viewport"] [node name="Wall1" type="StaticBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(20, 40) position = Vector2(20, 40)
[node name="CollisionShape2D" type="CollisionShape2D" parent="SubViewportContainer/SubViewport/Wall1"]
rotation = 1.5708
shape = SubResource("6")
[node name="Wall2" type="StaticBody2D" parent="ViewportContainer/Viewport"] [node name="Wall2" type="StaticBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(122, 40) position = Vector2(122, 40)
[node name="CollisionShape2D" type="CollisionShape2D" parent="SubViewportContainer/SubViewport/Wall2"]
rotation = 1.5708
shape = SubResource("6")
[node name="Platform1" type="StaticBody2D" parent="ViewportContainer/Viewport"] [node name="Platform1" type="StaticBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(50, 44) position = Vector2(50, 44)
[node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/Platform1"] [node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/Platform1"]
shape = SubResource("6") shape = SubResource("6")
one_way_collision = true one_way_collision = true
debug_color = Color(0, 0.533333, 1, 0.0980392)
[node name="Platform2" type="StaticBody2D" parent="ViewportContainer/Viewport"] [node name="Platform2" type="StaticBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(80, 38) position = Vector2(80, 38)
[node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/Platform2"] [node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/Platform2"]
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 0.0980392)
[node name="Slope" type="StaticBody2D" parent="ViewportContainer/Viewport"] [node name="Slope" type="StaticBody2D" parent="ViewportContainer/Viewport"]
position = Vector2(85, 36) position = Vector2(85, 36)
@@ -136,15 +132,22 @@ position = Vector2(85, 36)
[node name="CollisionShape2D" type="CollisionPolygon2D" parent="ViewportContainer/Viewport/Slope"] [node name="CollisionShape2D" type="CollisionPolygon2D" parent="ViewportContainer/Viewport/Slope"]
polygon = PackedVector2Array(0, 0, 6, 0, 22, 16, 16, 16) polygon = PackedVector2Array(0, 0, 6, 0, 22, 16, 16, 16)
[node name="SubViewportContainer_SubViewport_Wall1#CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5708
shape = SubResource("6")
debug_color = Color(0, 0.6, 0.7, 0.42)
[node name="SubViewportContainer_SubViewport_Wall2#CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5708
shape = SubResource("6")
debug_color = Color(0, 0.6, 0.7, 0.42)
[node name="LabelTestType" type="Label" parent="."] [node name="LabelTestType" type="Label" parent="."]
offset_left = 14.0 offset_left = 14.0
offset_top = 79.0 offset_top = 79.0
offset_right = 145.0 offset_right = 145.0
offset_bottom = 93.0 offset_bottom = 93.0
text = "Testing: " text = "Testing: "
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Options" parent="." instance=ExtResource("3")] [node name="Options" parent="." instance=ExtResource("3")]
@@ -154,9 +157,6 @@ offset_top = 237.929
offset_right = 145.0 offset_right = 145.0
offset_bottom = 251.929 offset_bottom = 251.929
text = "ON FLOOR" text = "ON FLOOR"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="LabelControls" type="Label" parent="."] [node name="LabelControls" type="Label" parent="."]
offset_left = 14.0 offset_left = 14.0
@@ -165,6 +165,3 @@ offset_right = 145.0
offset_bottom = 294.291 offset_bottom = 294.291
text = "LEFT/RIGHT - MOVE text = "LEFT/RIGHT - MOVE
UP - JUMP" UP - JUMP"
__meta__ = {
"_edit_use_anchors_": false
}

View File

@@ -70,15 +70,10 @@ alignment = 2
[node name="Label" type="Label" parent="FloorMaxAngle"] [node name="Label" type="Label" parent="FloorMaxAngle"]
layout_mode = 2 layout_mode = 2
offset_right = 123.0
offset_bottom = 26.0
text = "Floor Max angle" text = "Floor Max angle"
[node name="HSlider" type="HSlider" parent="FloorMaxAngle"] [node name="HSlider" type="HSlider" parent="FloorMaxAngle"]
layout_mode = 2 layout_mode = 2
offset_left = 143.0
offset_right = 419.0
offset_bottom = 16.0
size_flags_horizontal = 3 size_flags_horizontal = 3
max_value = 180.0 max_value = 180.0
script = ExtResource("3_cd5g0") script = ExtResource("3_cd5g0")
@@ -86,9 +81,6 @@ snap_step = 5.0
[node name="LabelValue" type="Label" parent="FloorMaxAngle"] [node name="LabelValue" type="Label" parent="FloorMaxAngle"]
layout_mode = 2 layout_mode = 2
offset_left = 439.0
offset_right = 462.0
offset_bottom = 26.0
text = "0.0" text = "0.0"
script = ExtResource("4_eoplu") script = ExtResource("4_eoplu")
@@ -99,6 +91,7 @@ script = ExtResource("7")
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CharacterBodyRay2D" type="CharacterBody2D" parent="."] [node name="CharacterBodyRay2D" type="CharacterBody2D" parent="."]
position = Vector2(100, 450) position = Vector2(100, 450)
@@ -108,37 +101,42 @@ script = ExtResource("7")
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBodyRay2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBodyRay2D"]
position = Vector2(0, -16) position = Vector2(0, -16)
shape = SubResource("CircleShape2D_llvur") shape = SubResource("CircleShape2D_llvur")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CollisionShapeRay2D" type="CollisionShape2D" parent="CharacterBodyRay2D"] [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="CharacterBodyRay2D"]
position = Vector2(0, -16) position = Vector2(0, -16)
shape = SubResource("RayShape2D_3lv1w") shape = SubResource("RayShape2D_3lv1w")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="RigidDynamicBody2D" type="RigidBody2D" parent="."] [node name="RigidDynamicBody2D" type="RigidBody2D" parent="."]
position = Vector2(100, 450) position = Vector2(100, 450)
collision_mask = 2147483649 collision_mask = 2147483649
physics_material_override = SubResource("1") physics_material_override = SubResource("1")
contact_monitor = true
lock_rotation = true lock_rotation = true
contact_monitor = true
script = ExtResource("6") script = ExtResource("6")
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidDynamicBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidDynamicBody2D"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyRay2D" type="RigidBody2D" parent="."] [node name="RigidBodyRay2D" type="RigidBody2D" parent="."]
position = Vector2(100, 450) position = Vector2(100, 450)
collision_mask = 2147483649 collision_mask = 2147483649
physics_material_override = SubResource("1") physics_material_override = SubResource("1")
contact_monitor = true
lock_rotation = true lock_rotation = true
contact_monitor = true
script = ExtResource("6") script = ExtResource("6")
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodyRay2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodyRay2D"]
position = Vector2(-7.62939e-06, -16) position = Vector2(-7.62939e-06, -16)
shape = SubResource("CircleShape2D_dr08f") shape = SubResource("CircleShape2D_dr08f")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="CollisionShapeRay2D" type="CollisionShape2D" parent="RigidBodyRay2D"] [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="RigidBodyRay2D"]
position = Vector2(-7.62939e-06, -16) position = Vector2(-7.62939e-06, -16)
shape = SubResource("RayShape2D_w83f0") shape = SubResource("RayShape2D_w83f0")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="StaticSceneFlat" parent="." instance=ExtResource("4")] [node name="StaticSceneFlat" parent="." instance=ExtResource("4")]
position = Vector2(0, 12) position = Vector2(0, 12)

View File

@@ -56,6 +56,7 @@ script = ExtResource("7")
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CharacterBodyRay2D" type="CharacterBody2D" parent="."] [node name="CharacterBodyRay2D" type="CharacterBody2D" parent="."]
position = Vector2(250, 460) position = Vector2(250, 460)
@@ -65,18 +66,22 @@ script = ExtResource("7")
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBodyRay2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBodyRay2D"]
position = Vector2(0, -8) position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_jx2e1") shape = SubResource("RectangleShape2D_jx2e1")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CollisionShapeRay2D" type="CollisionShape2D" parent="CharacterBodyRay2D"] [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="CharacterBodyRay2D"]
position = Vector2(0, 8) position = Vector2(0, 8)
shape = SubResource("RayShape2D_206f5") shape = SubResource("RayShape2D_206f5")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CollisionShapeRay2DLeft" type="CollisionShape2D" parent="CharacterBodyRay2D"] [node name="CollisionShapeRay2DLeft" type="CollisionShape2D" parent="CharacterBodyRay2D"]
position = Vector2(-12, 8) position = Vector2(-12, 8)
shape = SubResource("RayShape2D_206f5") shape = SubResource("RayShape2D_206f5")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="CollisionShapeRay2DRight" type="CollisionShape2D" parent="CharacterBodyRay2D"] [node name="CollisionShapeRay2DRight" type="CollisionShape2D" parent="CharacterBodyRay2D"]
position = Vector2(12, 8) position = Vector2(12, 8)
shape = SubResource("RayShape2D_206f5") shape = SubResource("RayShape2D_206f5")
debug_color = Color(0, 1, 0, 0.0980392)
[node name="RigidDynamicBody2D" type="RigidBody2D" parent="."] [node name="RigidDynamicBody2D" type="RigidBody2D" parent="."]
position = Vector2(250, 460) position = Vector2(250, 460)
@@ -88,6 +93,7 @@ script = ExtResource("6")
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidDynamicBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidDynamicBody2D"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyRay2D" type="RigidBody2D" parent="."] [node name="RigidBodyRay2D" type="RigidBody2D" parent="."]
position = Vector2(250, 460) position = Vector2(250, 460)
@@ -100,18 +106,22 @@ script = ExtResource("6")
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodyRay2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodyRay2D"]
position = Vector2(0, -8) position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_jx2e1") shape = SubResource("RectangleShape2D_jx2e1")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="CollisionShapeRay2D" type="CollisionShape2D" parent="RigidBodyRay2D"] [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="RigidBodyRay2D"]
position = Vector2(0, 8) position = Vector2(0, 8)
shape = SubResource("RayShape2D_206f5") shape = SubResource("RayShape2D_206f5")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="CollisionShapeRay2DLeft" type="CollisionShape2D" parent="RigidBodyRay2D"] [node name="CollisionShapeRay2DLeft" type="CollisionShape2D" parent="RigidBodyRay2D"]
position = Vector2(-12, 8) position = Vector2(-12, 8)
shape = SubResource("RayShape2D_206f5") shape = SubResource("RayShape2D_206f5")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="CollisionShapeRay2DRight" type="CollisionShape2D" parent="RigidBodyRay2D"] [node name="CollisionShapeRay2DRight" type="CollisionShape2D" parent="RigidBodyRay2D"]
position = Vector2(12, 8) position = Vector2(12, 8)
shape = SubResource("RayShape2D_206f5") shape = SubResource("RayShape2D_206f5")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="JumpTargetArea2D" type="Area2D" parent="."] [node name="JumpTargetArea2D" type="Area2D" parent="."]
visible = false visible = false
@@ -120,6 +130,7 @@ position = Vector2(810, 390)
[node name="CollisionShape2D" type="CollisionShape2D" parent="JumpTargetArea2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="JumpTargetArea2D"]
shape = SubResource("5") shape = SubResource("5")
disabled = true disabled = true
debug_color = Color(1, 0, 1, 0.0980392)
[node name="FallTargetArea2D" type="Area2D" parent="."] [node name="FallTargetArea2D" type="Area2D" parent="."]
visible = false visible = false
@@ -128,6 +139,7 @@ position = Vector2(250, 480)
[node name="CollisionShape2D" type="CollisionShape2D" parent="FallTargetArea2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="FallTargetArea2D"]
shape = SubResource("5") shape = SubResource("5")
disabled = true disabled = true
debug_color = Color(1, 0, 1, 0.0980392)
[node name="StaticSceneFlat" parent="." instance=ExtResource("4")] [node name="StaticSceneFlat" parent="." instance=ExtResource("4")]
position = Vector2(0, 12) position = Vector2(0, 12)

View File

@@ -133,7 +133,7 @@ func _add_collision(space_state: PhysicsDirectSpaceState2D, pos: Vector2, shape:
var color := Color.GREEN var color := Color.GREEN
if results.is_empty(): if results.is_empty():
color = Color.WHITE.darkened(0.5) color = Color.BLACK
# Draw collision query shape. # Draw collision query shape.
add_shape(shape, shape_query.transform, color) add_shape(shape, shape_query.transform, color)

View File

@@ -26,7 +26,7 @@ script = ExtResource("1")
z_index = -1 z_index = -1
z_as_relative = false z_as_relative = false
[node name="RigidBodyRectangle" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyRectangle" type="RigidBody2D" parent="Shapes"]
position = Vector2(114.877, 248.76) position = Vector2(114.877, 248.76)
freeze = true freeze = true
@@ -34,15 +34,17 @@ freeze = true
rotation = -1.19206 rotation = -1.19206
scale = Vector2(1.2, 1.2) scale = Vector2(1.2, 1.2)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodySphere" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodySphere" type="RigidBody2D" parent="Shapes"]
position = Vector2(314.894, 257.658) position = Vector2(314.894, 257.658)
freeze = true freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodySphere"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodySphere"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyCapsule" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyCapsule" type="RigidBody2D" parent="Shapes"]
position = Vector2(465.629, 261.204) position = Vector2(465.629, 261.204)
freeze = true freeze = true
@@ -50,8 +52,9 @@ freeze = true
rotation = -0.202458 rotation = -0.202458
scale = Vector2(1.2, 1.2) scale = Vector2(1.2, 1.2)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyConvexPolygon" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="Shapes"]
position = Vector2(613.385, 252.771) position = Vector2(613.385, 252.771)
freeze = true freeze = true
@@ -62,7 +65,7 @@ polygon = PackedVector2Array(10.7, -54.5, 28.3596, -49.4067, 47.6282, -34.3806,
modulate = Color(1, 1, 1, 0.392157) modulate = Color(1, 1, 1, 0.392157)
texture = ExtResource("2") texture = ExtResource("2")
[node name="RigidBodyConcavePolygon" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyConcavePolygon" type="RigidBody2D" parent="Shapes"]
position = Vector2(771.159, 252.771) position = Vector2(771.159, 252.771)
freeze = true freeze = true
@@ -73,18 +76,20 @@ polygon = PackedVector2Array(-5.93512, -43.2195, 6.44476, -42.9695, 11.127, -54.
modulate = Color(1, 1, 1, 0.392157) modulate = Color(1, 1, 1, 0.392157)
texture = ExtResource("2") texture = ExtResource("2")
[node name="RigidBodyConcaveSegments" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyConcaveSegments" type="RigidBody2D" parent="Shapes"]
position = Vector2(930.097, 252.771) position = Vector2(930.097, 252.771)
freeze = true freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodyConcaveSegments"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodyConcaveSegments"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="GodotIcon" type="Sprite2D" parent="Shapes/RigidBodyConcaveSegments"] [node name="GodotIcon" type="Sprite2D" parent="Shapes/RigidBodyConcaveSegments"]
modulate = Color(1, 1, 1, 0.392157) modulate = Color(1, 1, 1, 0.392157)
texture = ExtResource("2") texture = ExtResource("2")
[node name="Controls" type="VBoxContainer" parent="."] [node name="Controls" type="VBoxContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 25.3619 offset_left = 25.3619
@@ -92,54 +97,35 @@ offset_top = 416.765
offset_right = 218.362 offset_right = 218.362
offset_bottom = 458.765 offset_bottom = 458.765
theme_override_constants/separation = 10 theme_override_constants/separation = 10
__meta__ = {
"_edit_use_anchors_": false
}
[node name="OffsetH" type="HBoxContainer" parent="Controls"] [node name="OffsetH" type="HBoxContainer" parent="Controls"]
offset_right = 204.0 layout_mode = 2
offset_bottom = 26.0
theme_override_constants/separation = 20 theme_override_constants/separation = 20
alignment = 2 alignment = 2
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" type="Label" parent="Controls/OffsetH"] [node name="Label" type="Label" parent="Controls/OffsetH"]
offset_right = 64.0 layout_mode = 2
offset_bottom = 26.0
text = "Offset H" text = "Offset H"
[node name="HSlider" type="HSlider" parent="Controls/OffsetH"] [node name="HSlider" type="HSlider" parent="Controls/OffsetH"]
offset_left = 84.0 custom_minimum_size = Vector2(200, 0)
offset_right = 204.0 layout_mode = 2
offset_bottom = 16.0
rect_min_size = Vector2(120, 0)
min_value = -1.0 min_value = -1.0
max_value = 1.0 max_value = 1.0
step = 0.01 step = 0.01
[node name="OffsetV" type="HBoxContainer" parent="Controls"] [node name="OffsetV" type="HBoxContainer" parent="Controls"]
offset_top = 36.0 layout_mode = 2
offset_right = 204.0
offset_bottom = 62.0
theme_override_constants/separation = 20 theme_override_constants/separation = 20
alignment = 2 alignment = 2
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" type="Label" parent="Controls/OffsetV"] [node name="Label" type="Label" parent="Controls/OffsetV"]
offset_left = 2.0 layout_mode = 2
offset_right = 64.0
offset_bottom = 26.0
text = "Offset V" text = "Offset V"
[node name="HSlider" type="HSlider" parent="Controls/OffsetV"] [node name="HSlider" type="HSlider" parent="Controls/OffsetV"]
offset_left = 84.0 custom_minimum_size = Vector2(200, 0)
offset_right = 204.0 layout_mode = 2
offset_bottom = 16.0
rect_min_size = Vector2(120, 0)
min_value = -1.0 min_value = -1.0
max_value = 1.0 max_value = 1.0
step = 0.01 step = 0.01

View File

@@ -155,6 +155,7 @@ position = Vector2(512, 300)
[node name="CollisionShape2D" type="CollisionShape2D" parent="TargetArea2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="TargetArea2D"]
shape = SubResource("CircleShape2D_e5nt1") shape = SubResource("CircleShape2D_e5nt1")
debug_color = Color(1, 0, 1, 0.0980392)
[node name="OneWayStaticBody2D" type="StaticBody2D" parent="."] [node name="OneWayStaticBody2D" type="StaticBody2D" parent="."]
position = Vector2(512, 300) position = Vector2(512, 300)
@@ -162,6 +163,7 @@ position = Vector2(512, 300)
[node name="CollisionShape2D" type="CollisionShape2D" parent="OneWayStaticBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="OneWayStaticBody2D"]
shape = SubResource("2") shape = SubResource("2")
one_way_collision = true one_way_collision = true
debug_color = Color(0, 0.533333, 1, 0.0980392)
[node name="RigidBody2D" type="RigidBody2D" parent="."] [node name="RigidBody2D" type="RigidBody2D" parent="."]
position = Vector2(300, 300) position = Vector2(300, 300)
@@ -176,6 +178,7 @@ texture = ExtResource("2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="CharacterBody2D" type="CharacterBody2D" parent="."] [node name="CharacterBody2D" type="CharacterBody2D" parent="."]
position = Vector2(300, 300) position = Vector2(300, 300)
@@ -188,6 +191,7 @@ texture = ExtResource("2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(0, 1, 0, 0.0980392)
[connection signal="value_changed" from="Controls/PlatformSize/HSlider" to="." method="_update_platform_size"] [connection signal="value_changed" from="Controls/PlatformSize/HSlider" to="." method="_update_platform_size"]
[connection signal="value_changed" from="Controls/PlatformAngle/HSlider" to="." method="_update_platform_angle"] [connection signal="value_changed" from="Controls/PlatformAngle/HSlider" to="." method="_update_platform_angle"]

View File

@@ -26,7 +26,7 @@ theme_override_font_sizes/font_size = 16
z_index = -1 z_index = -1
z_as_relative = false z_as_relative = false
[node name="RigidBodyRectangle" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyRectangle" type="RigidBody2D" parent="Shapes"]
position = Vector2(114.877, 248.76) position = Vector2(114.877, 248.76)
freeze = true freeze = true
@@ -34,15 +34,17 @@ freeze = true
rotation = -1.19206 rotation = -1.19206
scale = Vector2(1.2, 1.2) scale = Vector2(1.2, 1.2)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodySphere" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodySphere" type="RigidBody2D" parent="Shapes"]
position = Vector2(314.894, 257.658) position = Vector2(314.894, 257.658)
freeze = true freeze = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodySphere"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodySphere"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyCapsule" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyCapsule" type="RigidBody2D" parent="Shapes"]
position = Vector2(465.629, 261.204) position = Vector2(465.629, 261.204)
freeze = true freeze = true
@@ -50,8 +52,9 @@ freeze = true
rotation = -0.202458 rotation = -0.202458
scale = Vector2(1.2, 1.2) scale = Vector2(1.2, 1.2)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyConvexPolygon" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="Shapes"]
position = Vector2(613.385, 252.771) position = Vector2(613.385, 252.771)
freeze = true freeze = true
@@ -62,7 +65,7 @@ polygon = PackedVector2Array(10.7, -54.5, 28.3596, -49.4067, 47.6282, -34.3806,
modulate = Color(1, 1, 1, 0.392157) modulate = Color(1, 1, 1, 0.392157)
texture = ExtResource("1") texture = ExtResource("1")
[node name="RigidBodyConcavePolygon" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyConcavePolygon" type="RigidBody2D" parent="Shapes"]
position = Vector2(771.159, 252.771) position = Vector2(771.159, 252.771)
freeze = true freeze = true
@@ -73,7 +76,7 @@ polygon = PackedVector2Array(-5.93512, -43.2195, 6.44476, -42.9695, 11.127, -54.
modulate = Color(1, 1, 1, 0.392157) modulate = Color(1, 1, 1, 0.392157)
texture = ExtResource("1") texture = ExtResource("1")
[node name="RigidBodyConcaveSegments" type="RigidDynamicBody2D" parent="Shapes"] [node name="RigidBodyConcaveSegments" type="RigidBody2D" parent="Shapes"]
position = Vector2(930.097, 252.771) position = Vector2(930.097, 252.771)
freeze = true freeze = true

View File

@@ -20,23 +20,25 @@ script = ExtResource("2")
[node name="DynamicShapes" type="Node2D" parent="."] [node name="DynamicShapes" type="Node2D" parent="."]
[node name="RigidBodyRectangle" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyRectangle" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(96, 127) position = Vector2(96, 127)
script = ExtResource("3") script = ExtResource("3")
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"]
rotation = 0.675442 rotation = 0.675442
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyCapsule" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyCapsule" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(270.165, 139.444) position = Vector2(270.165, 139.444)
script = ExtResource("3") script = ExtResource("3")
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"]
rotation = -0.202458 rotation = -0.202458
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyConcavePolygon" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyConcavePolygon" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(683.614, 132.749) position = Vector2(683.614, 132.749)
script = ExtResource("3") script = ExtResource("3")
@@ -49,7 +51,7 @@ self_modulate = Color(1, 1, 1, 0.392157)
scale = Vector2(0.5, 0.5) scale = Vector2(0.5, 0.5)
texture = ExtResource("1") texture = ExtResource("1")
[node name="RigidBodyConvexPolygon" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(473.536, 134.336) position = Vector2(473.536, 134.336)
script = ExtResource("3") script = ExtResource("3")
@@ -62,11 +64,12 @@ self_modulate = Color(1, 1, 1, 0.392157)
scale = Vector2(0.5, 0.5) scale = Vector2(0.5, 0.5)
texture = ExtResource("1") texture = ExtResource("1")
[node name="RigidBodySphere" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodySphere" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(919.968, 115.129) position = Vector2(919.968, 115.129)
script = ExtResource("3") script = ExtResource("3")
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="StaticScene" parent="." instance=ExtResource("6")] [node name="StaticScene" parent="." instance=ExtResource("6")]

View File

@@ -17,10 +17,10 @@ height = 17.0
[node name="Test" type="Node2D"] [node name="Test" type="Node2D"]
script = ExtResource("2") script = ExtResource("2")
_enable_debug_collision = false spawns = Array[NodePath]([NodePath("SpawnTarget1"), NodePath("SpawnTarget2"), NodePath("SpawnTarget3"), NodePath("SpawnTarget4"), NodePath("SpawnTarget5"), NodePath("SpawnTarget6"), NodePath("SpawnTarget7"), NodePath("SpawnTarget8"), NodePath("SpawnTarget9")])
spawns = [NodePath("SpawnTarget1"), NodePath("SpawnTarget2"), NodePath("SpawnTarget3"), NodePath("SpawnTarget4"), NodePath("SpawnTarget5"), NodePath("SpawnTarget6"), NodePath("SpawnTarget7"), NodePath("SpawnTarget8"), NodePath("SpawnTarget9")]
spawn_count = 300 spawn_count = 300
spawn_randomize = Vector2(10, 10) spawn_randomize = Vector2(10, 10)
_enable_debug_collision = false
[node name="Options" parent="." instance=ExtResource("4")] [node name="Options" parent="." instance=ExtResource("4")]
@@ -57,28 +57,31 @@ position = Vector2(0, 125.017)
[node name="DynamicShapes" type="Node2D" parent="."] [node name="DynamicShapes" type="Node2D" parent="."]
[node name="RigidBodyRectangle" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyRectangle" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(0, 1024) position = Vector2(0, 1024)
gravity_scale = 0.0 gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"]
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodySphere" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodySphere" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(100, 1024) position = Vector2(100, 1024)
gravity_scale = 0.0 gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyCapsule" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyCapsule" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(200, 1024) position = Vector2(200, 1024)
gravity_scale = 0.0 gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyConvexPolygon" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(300, 1024) position = Vector2(300, 1024)
gravity_scale = 0.0 gravity_scale = 0.0
@@ -91,7 +94,7 @@ self_modulate = Color(1, 1, 1, 0.392157)
scale = Vector2(0.1, 0.1) scale = Vector2(0.1, 0.1)
texture = ExtResource("3") texture = ExtResource("3")
[node name="RigidBodyConcavePolygon" type="RigidDynamicBody2D" parent="DynamicShapes"] [node name="RigidBodyConcavePolygon" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(400, 1024) position = Vector2(400, 1024)
gravity_scale = 0.0 gravity_scale = 0.0

View File

@@ -36,18 +36,21 @@ position = Vector2(0, 1024)
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"]
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodySphere" type="RigidBody2D" parent="DynamicShapes"] [node name="RigidBodySphere" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(100, 1024) position = Vector2(100, 1024)
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyCapsule" type="RigidBody2D" parent="DynamicShapes"] [node name="RigidBodyCapsule" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(200, 1024) position = Vector2(200, 1024)
[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 0.0980392)
[node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="DynamicShapes"] [node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="DynamicShapes"]
position = Vector2(300, 1024) position = Vector2(300, 1024)

View File

@@ -10,3 +10,4 @@ position = Vector2(512, 550)
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBodyPolygon"] [node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBodyPolygon"]
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(0, 0.533333, 1, 0.0980392)

View File

@@ -7,7 +7,7 @@ offset_left = 10.0
offset_top = 106.719 offset_top = 106.719
offset_right = 125.0 offset_right = 125.0
offset_bottom = 126.719 offset_bottom = 126.719
text = "TEST OPTIONS" text = "Test Options"
flat = false flat = false
align = 0 align = 0
script = ExtResource("1") script = ExtResource("1")

View File

@@ -15,7 +15,7 @@ var _jumping := false
var _keep_velocity := false var _keep_velocity := false
func _physics_process(_delta: float) -> void: func _physics_process(delta: float) -> void:
if _initial_velocity != Vector2.ZERO: if _initial_velocity != Vector2.ZERO:
_velocity = _initial_velocity _velocity = _initial_velocity
_initial_velocity = Vector2.ZERO _initial_velocity = Vector2.ZERO
@@ -44,7 +44,7 @@ func _physics_process(_delta: float) -> void:
_jumping = true _jumping = true
_velocity.y = -_jump_force _velocity.y = -_jump_force
else: else:
_velocity.y += _gravity_force _velocity.y += _gravity_force * delta * 60.0
floor_snap_length = _snap floor_snap_length = _snap
floor_stop_on_slope = _stop_on_slope floor_stop_on_slope = _stop_on_slope

View File

@@ -0,0 +1,6 @@
extends HBoxContainer
func _on_h_slider_value_changed(value: float) -> void:
$Value.text = str(roundi(value))
Engine.max_physics_steps_per_frame = roundi(value)

View File

@@ -0,0 +1 @@
uid://cvoeuonqmsye1

View File

@@ -0,0 +1,5 @@
extends CheckButton
func _on_check_button_toggled(toggled_on: bool) -> void:
get_tree().physics_interpolation = toggled_on

View File

@@ -0,0 +1 @@
uid://ijebwwx4t8et

View File

@@ -15,7 +15,7 @@ func _ready() -> void:
gravity_scale = 0.0 gravity_scale = 0.0
func _physics_process(_delta: float) -> void: func _physics_process(delta: float) -> void:
if _initial_velocity != Vector2.ZERO: if _initial_velocity != Vector2.ZERO:
_velocity = _initial_velocity _velocity = _initial_velocity
_initial_velocity = Vector2.ZERO _initial_velocity = Vector2.ZERO
@@ -47,7 +47,7 @@ func _physics_process(_delta: float) -> void:
# Reset gravity. # Reset gravity.
_velocity.y = 0.0 _velocity.y = 0.0
else: else:
_velocity.y += _gravity_force _velocity.y += _gravity_force * delta * 60.0
_jumping = false _jumping = false
linear_velocity = _velocity linear_velocity = _velocity

View File

@@ -0,0 +1,6 @@
extends HBoxContainer
func _on_h_slider_value_changed(value: float) -> void:
$Value.text = str(roundi(value))
Engine.physics_ticks_per_second = roundi(value * Engine.time_scale)

View File

@@ -0,0 +1 @@
uid://7kql0xtuc7ny

View File

@@ -0,0 +1,8 @@
extends HBoxContainer
func _on_h_slider_value_changed(value: float) -> void:
value = maxf(0.1, value)
$Value.text = "%.1f×" % value
Engine.time_scale = value
Engine.physics_ticks_per_second = $"../TicksPerSecond/HSlider".value * value

View File

@@ -0,0 +1 @@
uid://beqnv31yip0bl

View File

@@ -84,6 +84,7 @@ exit={
common/physics_ticks_per_second=120 common/physics_ticks_per_second=120
3d/default_gravity=13.0 3d/default_gravity=13.0
3d/physics_engine="Jolt Physics"
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]

View File

@@ -27,6 +27,7 @@ gdscript/warnings/untyped_declaration=1
[physics] [physics]
common/physics_ticks_per_second=120 common/physics_ticks_per_second=120
3d/physics_engine="Jolt Physics"
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]

View File

@@ -18,4 +18,4 @@ Check out this demo on the asset library: https://godotengine.org/asset-library/
## Screenshots ## Screenshots
![Screenshot](screenshots/screenshot.png) ![Screenshot](screenshots/physics_tests.webp)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=11 format=3 uid="uid://pfb5u7r1hl8t"] [gd_scene load_steps=15 format=3 uid="uid://pfb5u7r1hl8t"]
[ext_resource type="Script" uid="uid://34ftr8y77xc0" path="res://utils/label_fps.gd" id="1"] [ext_resource type="Script" uid="uid://34ftr8y77xc0" path="res://utils/label_fps.gd" id="1"]
[ext_resource type="Script" uid="uid://bai0htaaejvop" path="res://utils/label_version.gd" id="2"] [ext_resource type="Script" uid="uid://bai0htaaejvop" path="res://utils/label_version.gd" id="2"]
@@ -6,14 +6,19 @@
[ext_resource type="Script" uid="uid://dd0fbi0qttuuw" path="res://tests_menu.gd" id="4"] [ext_resource type="Script" uid="uid://dd0fbi0qttuuw" path="res://tests_menu.gd" id="4"]
[ext_resource type="Script" uid="uid://bkvmvpx2kl536" path="res://utils/label_test.gd" id="5"] [ext_resource type="Script" uid="uid://bkvmvpx2kl536" path="res://utils/label_test.gd" id="5"]
[ext_resource type="Script" uid="uid://bsrr8ude7isvn" path="res://utils/label_pause.gd" id="6"] [ext_resource type="Script" uid="uid://bsrr8ude7isvn" path="res://utils/label_pause.gd" id="6"]
[ext_resource type="Script" uid="uid://7kql0xtuc7ny" path="res://utils/ticks_per_second.gd" id="8_dg77c"]
[ext_resource type="Script" uid="uid://beqnv31yip0bl" path="res://utils/time_scale.gd" id="9_ycdy4"]
[ext_resource type="Script" uid="uid://eleg6e366qxd" path="res://utils/container_log.gd" id="10"] [ext_resource type="Script" uid="uid://eleg6e366qxd" path="res://utils/container_log.gd" id="10"]
[ext_resource type="Script" uid="uid://cvoeuonqmsye1" path="res://utils/max_steps_per_frame.gd" id="10_w48qg"]
[ext_resource type="Script" uid="uid://pagh264d7unt" path="res://utils/scroll_log.gd" id="11"] [ext_resource type="Script" uid="uid://pagh264d7unt" path="res://utils/scroll_log.gd" id="11"]
[ext_resource type="Script" uid="uid://ijebwwx4t8et" path="res://utils/physics_interpolation.gd" id="11_ycdy4"]
[ext_resource type="Script" uid="uid://sjyvya2tmvni" path="res://tests.gd" id="12"] [ext_resource type="Script" uid="uid://sjyvya2tmvni" path="res://tests.gd" id="12"]
[sub_resource type="StyleBoxFlat" id="1"] [sub_resource type="StyleBoxFlat" id="1"]
bg_color = Color(0, 0, 0, 0.176471) bg_color = Color(0, 0, 0, 0.176471)
[node name="Main" type="Control"] [node name="Main" type="Control"]
process_mode = 3
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -29,7 +34,7 @@ offset_left = 10.0
offset_top = 10.0 offset_top = 10.0
offset_right = 125.0 offset_right = 125.0
offset_bottom = 30.0 offset_bottom = 30.0
text = "TESTS" text = "Tests"
flat = false flat = false
script = ExtResource("4") script = ExtResource("4")
@@ -39,7 +44,8 @@ offset_left = 157.0
offset_top = 13.0 offset_top = 13.0
offset_right = 375.0 offset_right = 375.0
offset_bottom = 27.0 offset_bottom = 27.0
text = "P - TOGGLE PAUSE / R - RESTART / C - TOGGLE COLLISION / F - TOGGLE FULL SCREEN / ESC - QUIT" theme_override_constants/outline_size = 4
text = "P: Toggle Pause | R: Restart | C: Toggle Collision | F: Toggle Fullscreen | ESC: Quit"
[node name="LabelFPS" type="Label" parent="."] [node name="LabelFPS" type="Label" parent="."]
layout_mode = 1 layout_mode = 1
@@ -57,6 +63,7 @@ text = "FPS: 0"
script = ExtResource("1") script = ExtResource("1")
[node name="LabelEngine" type="Label" parent="."] [node name="LabelEngine" type="Label" parent="."]
self_modulate = Color(1, 1, 1, 0.752941)
layout_mode = 1 layout_mode = 1
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
@@ -72,6 +79,7 @@ text = "Physics engine:"
script = ExtResource("3") script = ExtResource("3")
[node name="LabelVersion" type="Label" parent="."] [node name="LabelVersion" type="Label" parent="."]
self_modulate = Color(1, 1, 1, 0.752941)
layout_mode = 1 layout_mode = 1
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
@@ -83,7 +91,7 @@ offset_bottom = -69.0
grow_vertical = 0 grow_vertical = 0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4 theme_override_constants/outline_size = 4
text = "Godot Version:" text = "Godot version:"
script = ExtResource("2") script = ExtResource("2")
[node name="LabelTest" type="Label" parent="."] [node name="LabelTest" type="Label" parent="."]
@@ -115,10 +123,122 @@ offset_bottom = -547.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 0 grow_vertical = 0
theme_override_colors/font_color = Color(1, 1, 0, 1) theme_override_colors/font_color = Color(1, 1, 0, 1)
theme_override_constants/outline_size = 6
theme_override_font_sizes/font_size = 24 theme_override_font_sizes/font_size = 24
text = "PAUSED" text = "Paused"
script = ExtResource("6") script = ExtResource("6")
[node name="Options" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -392.0
offset_top = 56.0
offset_right = -16.0
offset_bottom = 174.0
grow_horizontal = 0
theme_override_constants/separation = 6
[node name="TicksPerSecond" type="HBoxContainer" parent="Options"]
layout_mode = 2
tooltip_text = "Higher values make physics more precise at the cost of higher CPU utilization.
Low values may result in objects phasing through each other (tunneling).
Physics ticks per second are automatically multiplied by Time Scale in this project."
theme_override_constants/separation = 10
script = ExtResource("8_dg77c")
[node name="Label" type="Label" parent="Options/TicksPerSecond"]
custom_minimum_size = Vector2(164, 0)
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Ticks per Second"
[node name="HSlider" type="HSlider" parent="Options/TicksPerSecond"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
size_flags_vertical = 4
min_value = 10.0
max_value = 240.0
step = 10.0
value = 60.0
[node name="Value" type="Label" parent="Options/TicksPerSecond"]
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "60"
[node name="TimeScale" type="HBoxContainer" parent="Options"]
layout_mode = 2
tooltip_text = "Game speed multiplier. Physics ticks per second are
automatically multiplied by Time Scale in this project
to ensure accurate simulation regardless of time scale."
theme_override_constants/separation = 10
script = ExtResource("9_ycdy4")
[node name="Label" type="Label" parent="Options/TimeScale"]
custom_minimum_size = Vector2(164, 0)
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Time Scale"
[node name="HSlider" type="HSlider" parent="Options/TimeScale"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
size_flags_vertical = 4
max_value = 5.0
step = 0.5
value = 0.5
[node name="Value" type="Label" parent="Options/TimeScale"]
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "1.0×"
[node name="MaxStepsPerFrame" type="HBoxContainer" parent="Options"]
layout_mode = 2
tooltip_text = "Physics will slow down if more physics steps
than this value need to be simulated in a
single rendered frame."
theme_override_constants/separation = 10
script = ExtResource("10_w48qg")
[node name="Label" type="Label" parent="Options/MaxStepsPerFrame"]
custom_minimum_size = Vector2(164, 0)
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "Max Steps per Frame"
[node name="HSlider" type="HSlider" parent="Options/MaxStepsPerFrame"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
size_flags_vertical = 4
min_value = 1.0
max_value = 20.0
value = 8.0
[node name="Value" type="Label" parent="Options/MaxStepsPerFrame"]
layout_mode = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "8"
[node name="PhysicsInterpolation" type="CheckButton" parent="Options"]
custom_minimum_size = Vector2(217, 0)
layout_mode = 2
size_flags_horizontal = 0
tooltip_text = "Smooths out rendering regardless of the physics tick rate.
This is a purely visual effect and has no impact on the physics simulation."
theme_override_constants/outline_size = 4
button_pressed = true
text = "Physics Interpolation"
script = ExtResource("11_ycdy4")
[node name="PanelLog" type="Panel" parent="."] [node name="PanelLog" type="Panel" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = 3 anchors_preset = 3
@@ -126,10 +246,11 @@ anchor_left = 1.0
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -482.0 offset_left = -629.0
offset_top = -237.0 offset_top = -252.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
mouse_filter = 1
theme_override_styles/panel = SubResource("1") theme_override_styles/panel = SubResource("1")
[node name="ButtonClear" type="Button" parent="PanelLog"] [node name="ButtonClear" type="Button" parent="PanelLog"]
@@ -139,8 +260,8 @@ anchor_left = 1.0
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -48.0 offset_left = -64.0
offset_top = -25.0 offset_top = -36.0
offset_right = -5.0 offset_right = -5.0
offset_bottom = -5.0 offset_bottom = -5.0
grow_horizontal = 0 grow_horizontal = 0
@@ -155,20 +276,21 @@ anchor_left = 1.0
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -189.0 offset_left = -269.0
offset_top = -35.0 offset_top = -35.0
offset_right = -57.0 offset_right = -70.0
offset_bottom = -4.0 offset_bottom = -4.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
focus_mode = 0 focus_mode = 0
text = "Auto Scroll" button_pressed = true
text = "Automatic Scrolling"
[node name="ScrollLog" type="ScrollContainer" parent="PanelLog"] [node name="ScrollLog" type="ScrollContainer" parent="PanelLog"]
layout_mode = 0 layout_mode = 0
offset_left = 10.0 offset_left = 10.0
offset_top = 5.0 offset_top = 5.0
offset_right = 472.0 offset_right = 616.0
offset_bottom = 194.0 offset_bottom = 194.0
script = ExtResource("11") script = ExtResource("11")
auto_scroll = true auto_scroll = true
@@ -185,5 +307,9 @@ layout_mode = 2
text = "Log start" text = "Log start"
max_lines_visible = 5 max_lines_visible = 5
[connection signal="value_changed" from="Options/TicksPerSecond/HSlider" to="Options/TicksPerSecond" method="_on_h_slider_value_changed"]
[connection signal="value_changed" from="Options/TimeScale/HSlider" to="Options/TimeScale" method="_on_h_slider_value_changed"]
[connection signal="value_changed" from="Options/MaxStepsPerFrame/HSlider" to="Options/MaxStepsPerFrame" method="_on_h_slider_value_changed"]
[connection signal="toggled" from="Options/PhysicsInterpolation" to="Options/PhysicsInterpolation" method="_on_check_button_toggled"]
[connection signal="pressed" from="PanelLog/ButtonClear" to="PanelLog/ScrollLog/VBoxLog" method="clear"] [connection signal="pressed" from="PanelLog/ButtonClear" to="PanelLog/ScrollLog/VBoxLog" method="clear"]
[connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="_on_check_box_scroll_toggled"] [connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="_on_check_box_scroll_toggled"]

View File

@@ -95,7 +95,15 @@ character_jump={
[physics] [physics]
jolt_physics_3d/limits/max_bodies=20480 3d/physics_engine="Jolt Physics"
jolt_physics_3d/limits/max_body_pairs=131072 jolt_physics_3d/limits/temporary_memory_buffer_size=128
jolt_physics_3d/limits/max_contact_constraints=40960 jolt_physics_3d/limits/max_bodies=262144
jolt_physics_3d/limits/max_body_pairs=262144
jolt_physics_3d/limits/max_contact_constraints=262144
common/physics_interpolation=true common/physics_interpolation=true
[rendering]
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
anti_aliasing/quality/msaa_3d=2

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 KiB

View File

@@ -71,6 +71,7 @@ func create_rigidbody(shape: Shape3D, pickable: bool = false, transform: Transfo
var collision := CollisionShape3D.new() var collision := CollisionShape3D.new()
collision.shape = shape collision.shape = shape
collision.transform = transform collision.transform = transform
collision.debug_color = Color.YELLOW
var body := RigidBody3D.new() var body := RigidBody3D.new()
body.add_child(collision) body.add_child(collision)

View File

@@ -89,6 +89,7 @@ freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyBox"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyBox"]
transform = Transform3D(0.579556, 0.0885213, 0.145926, 0, 0.939693, -0.205212, -0.155291, 0.330366, 0.544604, 0, 0, 0) transform = Transform3D(0.579556, 0.0885213, 0.145926, 0, 0.939693, -0.205212, -0.155291, 0.330366, 0.544604, 0, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodySphere" type="RigidBody3D" parent="Shapes"] [node name="RigidBodySphere" type="RigidBody3D" parent="Shapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0)
@@ -97,6 +98,7 @@ freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodySphere"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodySphere"]
transform = Transform3D(1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 0, 0) transform = Transform3D(1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCapsule" type="RigidBody3D" parent="Shapes"] [node name="RigidBodyCapsule" type="RigidBody3D" parent="Shapes"]
freeze = true freeze = true
@@ -104,6 +106,7 @@ freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCapsule"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCapsule"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCylinder" type="RigidBody3D" parent="Shapes"] [node name="RigidBodyCylinder" type="RigidBody3D" parent="Shapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
@@ -112,6 +115,7 @@ freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCylinder"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCylinder"]
transform = Transform3D(0.772741, -0.258819, 2.59821e-08, 0.2, 0.933013, -0.207055, 0.0535898, 0.25, 0.772741, 0, 0, 0) transform = Transform3D(0.772741, -0.258819, 2.59821e-08, 0.2, 0.933013, -0.207055, 0.0535898, 0.25, 0.772741, 0, 0, 0)
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyConvexPolygon" type="RigidBody3D" parent="Shapes"] [node name="RigidBodyConvexPolygon" type="RigidBody3D" parent="Shapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, -0.211, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, -0.211, 0)
@@ -120,6 +124,7 @@ freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyConvexPolygon"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyConvexPolygon"]
transform = Transform3D(2, 0, 0, 0, 2.95442, 0.347296, 0, -0.520945, 1.96962, 0, 0.35, 0) transform = Transform3D(2, 0, 0, 0, 2.95442, 0.347296, 0, -0.520945, 1.96962, 0, 0.35, 0)
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyConcavePolygon" type="StaticBody3D" parent="Shapes"] [node name="RigidBodyConcavePolygon" type="StaticBody3D" parent="Shapes"]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, -6, 3.934) transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, -6, 3.934)
@@ -127,6 +132,7 @@ transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, -6, 3.934)
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyConcavePolygon"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyConcavePolygon"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
shape = ExtResource("1") shape = ExtResource("1")
debug_color = Color(0, 0.533333, 1, 1)
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.38087, 11.8164) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.38087, 11.8164)

View File

@@ -15,120 +15,140 @@ script = ExtResource("2")
[node name="DynamicShapes" type="Node3D" parent="."] [node name="DynamicShapes" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0)
[node name="RigidBodyG" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyG" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.51361, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.51361, 0, 0)
[node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"] [node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"]
transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0) transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"] [node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"]
transform = Transform3D(0.8, 0, 4.26326e-15, 0, 0.3, 0, -1.13687e-14, 0, 0.3, 0.3, -1.2, 0) transform = Transform3D(0.8, 0, 4.26326e-15, 0, 0.3, 0, -1.13687e-14, 0, 0.3, 0.3, -1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"] [node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"]
transform = Transform3D(-8.14603e-08, -0.3, 0, 0.5, -4.88762e-08, 0, 0, 0, 0.3, 0.8, -0.5, 0) transform = Transform3D(-8.14603e-08, -0.3, 0, 0.5, -4.88762e-08, 0, 0, 0, 0.3, 0.8, -0.5, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"] [node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyG"]
transform = Transform3D(0.8, 0, 4.26326e-15, 0, 0.3, 0, -1.13687e-14, 0, 0.3, 0.3, 1.2, 0) transform = Transform3D(0.8, 0, 4.26326e-15, 0, 0.3, 0, -1.13687e-14, 0, 0.3, 0.3, 1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyO" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyO" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.65654, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.65654, 0, 0)
[node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"] [node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"]
transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0) transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"] [node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"]
transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, 1.2, 0) transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, 1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"] [node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"]
transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, -1.2, 0) transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, -1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"] [node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO"]
transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, 0.8, 0, 0) transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, 0.8, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyD" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyD" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.248918, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.248918, 0, 0)
[node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"] [node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"]
transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0) transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"] [node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"]
transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, 1.2, 0) transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, 1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"] [node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"]
transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, -1.2, 0) transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, -1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"] [node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyD"]
transform = Transform3D(-1.46629e-07, -0.3, 0, 0.9, -4.88762e-08, 0, 0, 0, 0.3, 0.8, 0, 0) transform = Transform3D(-1.46629e-07, -0.3, 0, 0.9, -4.88762e-08, 0, 0, 0, 0.3, 0.8, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyO2" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyO2" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.97932, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.97932, 0, 0)
[node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"] [node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"]
transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0) transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, -0.8, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"] [node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"]
transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, 1.2, 0) transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, 1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"] [node name="CollisionShape3" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"]
transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, -1.2, 0) transform = Transform3D(0.5, 0, 4.26326e-15, 0, 0.3, 0, -7.10543e-15, 0, 0.3, 0, -1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"] [node name="CollisionShape4" type="CollisionShape3D" parent="DynamicShapes/RigidBodyO2"]
transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, 0.8, 0, 0) transform = Transform3D(-2.44381e-07, -0.3, 0, 1.5, -4.88762e-08, 0, 0, 0, 0.3, 0.8, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyT" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyT" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.46836, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.46836, 0, 0)
[node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyT"] [node name="CollisionShape1" type="CollisionShape3D" parent="DynamicShapes/RigidBodyT"]
transform = Transform3D(-1.95505e-07, -0.3, 0, 1.2, -4.88762e-08, 0, 0, 0, 0.3, 0, -0.3, 0) transform = Transform3D(-1.95505e-07, -0.3, 0, 1.2, -4.88762e-08, 0, 0, 0, 0.3, 0, -0.3, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyT"] [node name="CollisionShape2" type="CollisionShape3D" parent="DynamicShapes/RigidBodyT"]
transform = Transform3D(1, 0, 4.26326e-15, 0, 0.3, 0, -1.42109e-14, 0, 0.3, 0, 1.2, 0) transform = Transform3D(1, 0, 4.26326e-15, 0, 0.3, 0, -1.42109e-14, 0, 0.3, 0, 1.2, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="StaticBodyPins" type="StaticBody3D" parent="."] [node name="StaticBodyPins" type="StaticBody3D" parent="."]
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyPins"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyPins"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 9.13207, 0) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 9.13207, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.501961, 1, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="StaticBodyPins"] [node name="CollisionShape2" type="CollisionShape3D" parent="StaticBodyPins"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -2.71742, 9.13207, 0) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -2.71742, 9.13207, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.501961, 1, 1)
[node name="CollisionShape3" type="CollisionShape3D" parent="StaticBodyPins"] [node name="CollisionShape3" type="CollisionShape3D" parent="StaticBodyPins"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -5.64188, 9.13207, 0) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -5.64188, 9.13207, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.501961, 1, 1)
[node name="CollisionShape4" type="CollisionShape3D" parent="StaticBodyPins"] [node name="CollisionShape4" type="CollisionShape3D" parent="StaticBodyPins"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 2.87444, 9.13207, 0) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 2.87444, 9.13207, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.501961, 1, 1)
[node name="CollisionShape5" type="CollisionShape3D" parent="StaticBodyPins"] [node name="CollisionShape5" type="CollisionShape3D" parent="StaticBodyPins"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 4.81639, 9.13207, 0) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 4.81639, 9.13207, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.501961, 1, 1)
[node name="StaticScene" parent="." instance=ExtResource("1")] [node name="StaticScene" parent="." instance=ExtResource("1")]
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.53602, 22.1236) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.53602, 22.1236)
script = ExtResource("3") script = ExtResource("3")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 50.0

View File

@@ -31,59 +31,54 @@ physics_material_override = SubResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0"]
transform = Transform3D(5, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0) transform = Transform3D(5, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.533333, 1, 1)
[node name="RigidBodies" type="Node3D" parent="StaticBodyFriction0"] [node name="RigidBodies" type="Node3D" parent="StaticBodyFriction0"]
transform = Transform3D(1, 0, 0, 0, 0.866026, 0.5, 0, -0.5, 0.866026, -3, -7.431, 4.291) transform = Transform3D(1, 0, 0, 0, 0.866026, 0.5, 0, -0.5, 0.866026, -3, -7.431, 4.291)
[node name="RigidBodyFriction0" type="RigidDynamicBody3D" parent="StaticBodyFriction0/RigidBodies"] [node name="RigidBodyFriction0" type="RigidBody3D" parent="StaticBodyFriction0/RigidBodies"]
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 0, 10, 0) transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 0, 10, 0)
physics_material_override = SubResource("3") physics_material_override = SubResource("3")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction0"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction0"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="LabelFriction" type="Label" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction0"] [node name="LabelFriction" type="Label" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction0"]
offset_right = 40.0 offset_right = 40.0
offset_bottom = 14.0 offset_bottom = 14.0
text = "0" text = "0"
script = ExtResource("2") script = ExtResource("2")
__meta__ = {
"_edit_use_anchors_": false
}
world_offset = Vector3(0, 1.5, 0) world_offset = Vector3(0, 1.5, 0)
[node name="RigidBodyFriction05" type="RigidDynamicBody3D" parent="StaticBodyFriction0/RigidBodies"] [node name="RigidBodyFriction05" type="RigidBody3D" parent="StaticBodyFriction0/RigidBodies"]
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 3, 10, 0) transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 3, 10, 0)
physics_material_override = SubResource("5") physics_material_override = SubResource("5")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction05"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction05"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="LabelFriction" type="Label" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction05"] [node name="LabelFriction" type="Label" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction05"]
offset_right = 40.0 offset_right = 40.0
offset_bottom = 14.0 offset_bottom = 14.0
text = "0.5" text = "0.5"
script = ExtResource("2") script = ExtResource("2")
__meta__ = {
"_edit_use_anchors_": false
}
world_offset = Vector3(0, 1.5, 0) world_offset = Vector3(0, 1.5, 0)
[node name="RigidBodyFriction1" type="RigidDynamicBody3D" parent="StaticBodyFriction0/RigidBodies"] [node name="RigidBodyFriction1" type="RigidBody3D" parent="StaticBodyFriction0/RigidBodies"]
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 6, 10, 0) transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 6, 10, 0)
physics_material_override = SubResource("6") physics_material_override = SubResource("6")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction1"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction1"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="LabelFriction" type="Label" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction1"] [node name="LabelFriction" type="Label" parent="StaticBodyFriction0/RigidBodies/RigidBodyFriction1"]
offset_right = 40.0 offset_right = 40.0
offset_bottom = 14.0 offset_bottom = 14.0
text = "1" text = "1"
script = ExtResource("2") script = ExtResource("2")
__meta__ = {
"_edit_use_anchors_": false
}
world_offset = Vector3(0, 1.5, 0) world_offset = Vector3(0, 1.5, 0)
[node name="StaticBodyFriction1" type="StaticBody3D" parent="."] [node name="StaticBodyFriction1" type="StaticBody3D" parent="."]
@@ -93,68 +88,61 @@ physics_material_override = SubResource("7")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1"]
transform = Transform3D(5, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0) transform = Transform3D(5, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.533333, 1, 1)
[node name="RigidBodies" type="Node3D" parent="StaticBodyFriction1"] [node name="RigidBodies" type="Node3D" parent="StaticBodyFriction1"]
transform = Transform3D(1, 0, 0, 0, 0.866026, 0.5, 0, -0.5, 0.866026, -3, -7.431, 4.291) transform = Transform3D(1, 0, 0, 0, 0.866026, 0.5, 0, -0.5, 0.866026, -3, -7.431, 4.291)
[node name="RigidBodyFriction0" type="RigidDynamicBody3D" parent="StaticBodyFriction1/RigidBodies"] [node name="RigidBodyFriction0" type="RigidBody3D" parent="StaticBodyFriction1/RigidBodies"]
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 0, 10, 0) transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 0, 10, 0)
physics_material_override = SubResource("3") physics_material_override = SubResource("3")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction0"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction0"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="LabelFriction" type="Label" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction0"] [node name="LabelFriction" type="Label" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction0"]
offset_right = 40.0 offset_right = 40.0
offset_bottom = 14.0 offset_bottom = 14.0
text = "0" text = "0"
script = ExtResource("2") script = ExtResource("2")
__meta__ = {
"_edit_use_anchors_": false
}
world_offset = Vector3(0, 1.5, 0) world_offset = Vector3(0, 1.5, 0)
[node name="RigidBodyFriction05" type="RigidDynamicBody3D" parent="StaticBodyFriction1/RigidBodies"] [node name="RigidBodyFriction05" type="RigidBody3D" parent="StaticBodyFriction1/RigidBodies"]
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 3, 10, 0) transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 3, 10, 0)
physics_material_override = SubResource("5") physics_material_override = SubResource("5")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction05"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction05"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="LabelFriction" type="Label" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction05"] [node name="LabelFriction" type="Label" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction05"]
offset_right = 40.0 offset_right = 40.0
offset_bottom = 14.0 offset_bottom = 14.0
text = "0.5" text = "0.5"
script = ExtResource("2") script = ExtResource("2")
__meta__ = {
"_edit_use_anchors_": false
}
world_offset = Vector3(0, 1.5, 0) world_offset = Vector3(0, 1.5, 0)
[node name="RigidBodyFriction1" type="RigidDynamicBody3D" parent="StaticBodyFriction1/RigidBodies"] [node name="RigidBodyFriction1" type="RigidBody3D" parent="StaticBodyFriction1/RigidBodies"]
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 6, 10, 0) transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, 6, 10, 0)
physics_material_override = SubResource("6") physics_material_override = SubResource("6")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction1"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction1"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="LabelFriction" type="Label" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction1"] [node name="LabelFriction" type="Label" parent="StaticBodyFriction1/RigidBodies/RigidBodyFriction1"]
offset_right = 40.0 offset_right = 40.0
offset_bottom = 14.0 offset_bottom = 14.0
text = "1" text = "1"
script = ExtResource("2") script = ExtResource("2")
__meta__ = {
"_edit_use_anchors_": false
}
world_offset = Vector3(0, 1.5, 0) world_offset = Vector3(0, 1.5, 0)
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.53602, 22.1236) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.53602, 22.1236)
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 50.0
[node name="LabelGround0" type="Label" parent="."] [node name="LabelGround0" type="Label" parent="."]
anchors_preset = 5
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = -164.0 offset_left = -164.0
@@ -162,11 +150,9 @@ offset_top = 80.0
offset_right = -28.0 offset_right = -28.0
offset_bottom = 94.0 offset_bottom = 94.0
text = "GROUND FRICTION 0" text = "GROUND FRICTION 0"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="LabelGround1" type="Label" parent="."] [node name="LabelGround1" type="Label" parent="."]
anchors_preset = 5
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = 31.0 offset_left = 31.0
@@ -174,6 +160,3 @@ offset_top = 80.0
offset_right = 167.0 offset_right = 167.0
offset_bottom = 94.0 offset_bottom = 94.0
text = "GROUND FRICTION 1" text = "GROUND FRICTION 1"
__meta__ = {
"_edit_use_anchors_": false
}

View File

@@ -13,9 +13,6 @@ offset_top = 78.0
offset_right = 171.0 offset_right = 171.0
offset_bottom = 92.0 offset_bottom = 92.0
text = "Joint Type: " text = "Joint Type: "
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Options" parent="." instance=ExtResource("3")] [node name="Options" parent="." instance=ExtResource("3")]
@@ -36,6 +33,3 @@ __meta__ = {
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6.19796) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6.19796)
script = ExtResource("1") script = ExtResource("1")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 50.0

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=3 uid="uid://dgh5drb4q81kh"] [gd_scene load_steps=15 format=3 uid="uid://dgh5drb4q81kh"]
[ext_resource type="Script" uid="uid://cx8vo58lobtgu" path="res://utils/camera_orbit.gd" id="1"] [ext_resource type="Script" uid="uid://cx8vo58lobtgu" path="res://utils/camera_orbit.gd" id="1"]
[ext_resource type="Script" uid="uid://uo2swke2y6v8" path="res://tests/functional/test_moving_platform.gd" id="2"] [ext_resource type="Script" uid="uid://uo2swke2y6v8" path="res://tests/functional/test_moving_platform.gd" id="2"]
@@ -28,6 +28,40 @@ size = Vector3(4, 0.4, 2)
[sub_resource type="Animation" id="9"] [sub_resource type="Animation" id="9"]
length = 9.0 length = 9.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 4.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(-7, -4.235, 0), Vector3(7, -4.235, 0)]
}
[sub_resource type="Animation" id="Animation_jtts3"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(-7, -4.235, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jtts3"]
_data = {
&"Move": SubResource("9"),
&"RESET": SubResource("Animation_jtts3")
}
[node name="Test2" type="Node3D"] [node name="Test2" type="Node3D"]
script = ExtResource("2") script = ExtResource("2")
@@ -38,9 +72,6 @@ offset_top = 78.0
offset_right = 171.0 offset_right = 171.0
offset_bottom = 92.0 offset_bottom = 92.0
text = "Body Type: " text = "Body Type: "
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Options" parent="." instance=ExtResource("3")] [node name="Options" parent="." instance=ExtResource("3")]
offset_top = 153.0 offset_top = 153.0
@@ -59,24 +90,29 @@ use_snap = true
[node name="Capsule" type="CollisionShape3D" parent="Bodies/CharacterBody3D"] [node name="Capsule" type="CollisionShape3D" parent="Bodies/CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="Box" type="CollisionShape3D" parent="Bodies/CharacterBody3D"] [node name="Box" type="CollisionShape3D" parent="Bodies/CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="Cylinder" type="CollisionShape3D" parent="Bodies/CharacterBody3D"] [node name="Cylinder" type="CollisionShape3D" parent="Bodies/CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="Sphere" type="CollisionShape3D" parent="Bodies/CharacterBody3D"] [node name="Sphere" type="CollisionShape3D" parent="Bodies/CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="Convex" type="CollisionShape3D" parent="Bodies/CharacterBody3D"] [node name="Convex" type="CollisionShape3D" parent="Bodies/CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBody" type="RigidDynamicBody3D" parent="Bodies"] [node name="RigidBody" type="RigidBody3D" parent="Bodies"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, -4.18538, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, -4.18538, 0)
collision_layer = 4 collision_layer = 4
axis_lock_angular_x = true axis_lock_angular_x = true
@@ -87,22 +123,27 @@ physics_material_override = SubResource("7")
[node name="Capsule" type="CollisionShape3D" parent="Bodies/RigidBody"] [node name="Capsule" type="CollisionShape3D" parent="Bodies/RigidBody"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="Box" type="CollisionShape3D" parent="Bodies/RigidBody"] [node name="Box" type="CollisionShape3D" parent="Bodies/RigidBody"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="Cylinder" type="CollisionShape3D" parent="Bodies/RigidBody"] [node name="Cylinder" type="CollisionShape3D" parent="Bodies/RigidBody"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="Sphere" type="CollisionShape3D" parent="Bodies/RigidBody"] [node name="Sphere" type="CollisionShape3D" parent="Bodies/RigidBody"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="Convex" type="CollisionShape3D" parent="Bodies/RigidBody"] [node name="Convex" type="CollisionShape3D" parent="Bodies/RigidBody"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="Platforms" type="Node3D" parent="."] [node name="Platforms" type="Node3D" parent="."]
@@ -112,14 +153,14 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, -4.235, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="Platforms/MovingPlatform"] [node name="CollisionShape" type="CollisionShape3D" parent="Platforms/MovingPlatform"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.2, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.2, 0)
shape = SubResource("8") shape = SubResource("8")
debug_color = Color(0.533333, 0, 1, 1)
[node name="AnimationPlayer" type="AnimationPlayer" parent="Platforms/MovingPlatform"] [node name="AnimationPlayer" type="AnimationPlayer" parent="Platforms/MovingPlatform"]
anims/Move = SubResource("9") libraries = {
&"": SubResource("AnimationLibrary_jtts3")
}
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10)
current = true current = true
script = ExtResource("1") script = ExtResource("1")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 50.0

View File

@@ -88,7 +88,7 @@ func _add_raycast(space_state: PhysicsDirectSpaceState3D, pos_start: Vector3, po
if result: if result:
_raycast_visuals.surface_set_color(Color.GREEN) _raycast_visuals.surface_set_color(Color.GREEN)
else: else:
_raycast_visuals.surface_set_color(Color.RED.darkened(0.5)) _raycast_visuals.surface_set_color(Color.BLACK)
# Draw raycast line. # Draw raycast line.
_raycast_visuals.surface_add_vertex(pos_start) _raycast_visuals.surface_add_vertex(pos_start)

View File

@@ -27,44 +27,49 @@ theme_override_font_sizes/font_size = 16
[node name="Shapes" type="Node3D" parent="."] [node name="Shapes" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0)
[node name="RigidBodyBox" type="RigidDynamicBody3D" parent="Shapes"] [node name="RigidBodyBox" type="RigidBody3D" parent="Shapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 0)
freeze = true freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyBox"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyBox"]
transform = Transform3D(0.579556, 0.0885213, 0.145926, 0, 0.939693, -0.205212, -0.155291, 0.330366, 0.544604, 0, 0, 0) transform = Transform3D(0.579556, 0.0885213, 0.145926, 0, 0.939693, -0.205212, -0.155291, 0.330366, 0.544604, 0, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodySphere" type="RigidDynamicBody3D" parent="Shapes"] [node name="RigidBodySphere" type="RigidBody3D" parent="Shapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0)
freeze = true freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodySphere"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodySphere"]
transform = Transform3D(1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 0, 0) transform = Transform3D(1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCapsule" type="RigidDynamicBody3D" parent="Shapes"] [node name="RigidBodyCapsule" type="RigidBody3D" parent="Shapes"]
freeze = true freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCapsule"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCapsule"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCylinder" type="RigidDynamicBody3D" parent="Shapes"] [node name="RigidBodyCylinder" type="RigidBody3D" parent="Shapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
freeze = true freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCylinder"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyCylinder"]
transform = Transform3D(0.772741, -0.258819, 2.59821e-08, 0.2, 0.933013, -0.207055, 0.0535898, 0.25, 0.772741, 0, 0, 0) transform = Transform3D(0.772741, -0.258819, 2.59821e-08, 0.2, 0.933013, -0.207055, 0.0535898, 0.25, 0.772741, 0, 0, 0)
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyConvexPolygon" type="RigidDynamicBody3D" parent="Shapes"] [node name="RigidBodyConvexPolygon" type="RigidBody3D" parent="Shapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, -0.211, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, -0.211, 0)
freeze = true freeze = true
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyConvexPolygon"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/RigidBodyConvexPolygon"]
transform = Transform3D(2, 0, 0, 0, 2.89766, -0.517939, 0, 0.776908, 1.93177, 0, 0.3533, 0) transform = Transform3D(2, 0, 0, 0, 2.89766, -0.517939, 0, 0.776908, 1.93177, 0, 0.3533, 0)
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="StaticBodyHead" type="StaticBody3D" parent="Shapes"] [node name="StaticBodyHead" type="StaticBody3D" parent="Shapes"]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, -6, 3.93357) transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, -6, 3.93357)
@@ -72,6 +77,7 @@ transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, -6, 3.93357)
[node name="CollisionShape" type="CollisionShape3D" parent="Shapes/StaticBodyHead"] [node name="CollisionShape" type="CollisionShape3D" parent="Shapes/StaticBodyHead"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
shape = ExtResource("1") shape = ExtResource("1")
debug_color = Color(0, 0.533333, 1, 1)
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.8667, 11.8164) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.8667, 11.8164)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=28 format=3 uid="uid://se7gyhmygqul"] [gd_scene load_steps=23 format=3 uid="uid://se7gyhmygqul"]
[ext_resource type="Script" uid="uid://4rx7rkakkj28" path="res://utils/rigidbody_ground_check.gd" id="1"] [ext_resource type="Script" uid="uid://4rx7rkakkj28" path="res://utils/rigidbody_ground_check.gd" id="1"]
[ext_resource type="PackedScene" uid="uid://b1ihqm3x8jru" path="res://tests/test_options.tscn" id="2"] [ext_resource type="PackedScene" uid="uid://b1ihqm3x8jru" path="res://tests/test_options.tscn" id="2"]
@@ -10,47 +10,27 @@ friction = 0.0
[sub_resource type="BoxShape3D" id="2"] [sub_resource type="BoxShape3D" id="2"]
[sub_resource type="BoxMesh" id="3"]
[sub_resource type="PhysicsMaterial" id="5"] [sub_resource type="PhysicsMaterial" id="5"]
friction = 0.0 friction = 0.0
[sub_resource type="CapsuleShape3D" id="6"] [sub_resource type="CapsuleShape3D" id="6"]
[sub_resource type="CapsuleMesh" id="7"]
[sub_resource type="PhysicsMaterial" id="9"] [sub_resource type="PhysicsMaterial" id="9"]
friction = 0.0 friction = 0.0
[sub_resource type="CylinderShape3D" id="10"] [sub_resource type="CylinderShape3D" id="10"]
[sub_resource type="CylinderMesh" id="11"]
[sub_resource type="PhysicsMaterial" id="13"] [sub_resource type="PhysicsMaterial" id="13"]
friction = 0.0 friction = 0.0
[sub_resource type="ConvexPolygonShape3D" id="14"] [sub_resource type="ConvexPolygonShape3D" id="14"]
points = PackedVector3Array(-0.7, 0, -0.7, -0.3, 0, 0.8, 0.8, 0, -0.3, 0, -1, 0) points = PackedVector3Array(-0.7, 0, -0.7, -0.3, 0, 0.8, 0.8, 0, -0.3, 0, -1, 0)
[sub_resource type="ArrayMesh" id="15"]
_surfaces = [{
"aabb": AABB(-0.7, -1, -0.7, 1.5, 1.00001, 1.5),
"format": 34359742467,
"index_count": 12,
"index_data": PackedByteArray(0, 0, 1, 0, 3, 0, 1, 0, 2, 0, 3, 0, 2, 0, 0, 0, 3, 0, 2, 0, 1, 0, 0, 0),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 4,
"vertex_data": PackedByteArray(51, 51, 51, 191, 0, 0, 0, 0, 51, 51, 51, 191, 154, 153, 153, 190, 0, 0, 0, 0, 205, 204, 76, 63, 205, 204, 76, 63, 0, 0, 0, 0, 154, 153, 153, 190, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 59, 182, 3, 0, 0, 0, 0, 0, 0)
}]
[sub_resource type="PhysicsMaterial" id="17"] [sub_resource type="PhysicsMaterial" id="17"]
friction = 0.0 friction = 0.0
[sub_resource type="SphereShape3D" id="18"] [sub_resource type="SphereShape3D" id="18"]
[sub_resource type="SphereMesh" id="19"]
[sub_resource type="PlaneMesh" id="23"] [sub_resource type="PlaneMesh" id="23"]
size = Vector2(50, 20) size = Vector2(50, 20)
@@ -106,9 +86,7 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyBox"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyBox"]
transform = Transform3D(0.6, 0, 0, 0, 1, 0, 0, 0, 0.6, 0, 0, 0) transform = Transform3D(0.6, 0, 0, 0, 1, 0, 0, 0, 0.6, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="MeshInstance3D" type="MeshInstance3D" parent="DynamicShapes/Bodies/RigidBodyBox/CollisionShape"]
mesh = SubResource("3")
[node name="RigidBodyCapsule" type="RigidBody3D" parent="DynamicShapes/Bodies"] [node name="RigidBodyCapsule" type="RigidBody3D" parent="DynamicShapes/Bodies"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0)
@@ -121,9 +99,7 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyCapsule"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyCapsule"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(1, 1, 0, 1)
[node name="MeshInstance3D" type="MeshInstance3D" parent="DynamicShapes/Bodies/RigidBodyCapsule/CollisionShape"]
mesh = SubResource("7")
[node name="RigidBodyCylinder" type="RigidBody3D" parent="DynamicShapes/Bodies"] [node name="RigidBodyCylinder" type="RigidBody3D" parent="DynamicShapes/Bodies"]
axis_lock_angular_x = true axis_lock_angular_x = true
@@ -135,9 +111,7 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyCylinder"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyCylinder"]
transform = Transform3D(0.8, 0, 0, 0, 1, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 1, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("10") shape = SubResource("10")
debug_color = Color(1, 1, 0, 1)
[node name="MeshInstance3D" type="MeshInstance3D" parent="DynamicShapes/Bodies/RigidBodyCylinder/CollisionShape"]
mesh = SubResource("11")
[node name="RigidBodyConvex" type="RigidBody3D" parent="DynamicShapes/Bodies"] [node name="RigidBodyConvex" type="RigidBody3D" parent="DynamicShapes/Bodies"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0.974548, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0.974548, 0)
@@ -150,9 +124,7 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyConvex"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodyConvex"]
transform = Transform3D(1.5, 0, 0, 0, 2, 0, 0, 0, 1.5, 0, 0, 0) transform = Transform3D(1.5, 0, 0, 0, 2, 0, 0, 0, 1.5, 0, 0, 0)
shape = SubResource("14") shape = SubResource("14")
debug_color = Color(1, 1, 0, 1)
[node name="MeshInstance3D" type="MeshInstance3D" parent="DynamicShapes/Bodies/RigidBodyConvex/CollisionShape"]
mesh = SubResource("15")
[node name="RigidBodySphere" type="RigidBody3D" parent="DynamicShapes/Bodies"] [node name="RigidBodySphere" type="RigidBody3D" parent="DynamicShapes/Bodies"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0)
@@ -165,9 +137,7 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodySphere"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/Bodies/RigidBodySphere"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("18") shape = SubResource("18")
debug_color = Color(1, 1, 0, 1)
[node name="MeshInstance3D" type="MeshInstance3D" parent="DynamicShapes/Bodies/RigidBodySphere/CollisionShape"]
mesh = SubResource("19")
[node name="Floors" type="Node3D" parent="."] [node name="Floors" type="Node3D" parent="."]
@@ -182,6 +152,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConvexSmall/ConvexFloor"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConvexSmall/ConvexFloor"]
shape = SubResource("24") shape = SubResource("24")
debug_color = Color(0, 0.533333, 1, 1)
[node name="ConvexFloor2" type="StaticBody3D" parent="Floors/ConvexSmall"] [node name="ConvexFloor2" type="StaticBody3D" parent="Floors/ConvexSmall"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10)
@@ -192,6 +163,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConvexSmall/ConvexFloor2"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConvexSmall/ConvexFloor2"]
shape = SubResource("25") shape = SubResource("25")
debug_color = Color(0, 0.533333, 1, 1)
[node name="ConvexBig" type="Node3D" parent="Floors"] [node name="ConvexBig" type="Node3D" parent="Floors"]
@@ -203,6 +175,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConvexBig/ConvexFloor"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConvexBig/ConvexFloor"]
shape = SubResource("26") shape = SubResource("26")
debug_color = Color(0, 0.533333, 1, 1)
[node name="ConcaveSmall" type="Node3D" parent="Floors"] [node name="ConcaveSmall" type="Node3D" parent="Floors"]
@@ -216,6 +189,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConcaveSmall/ConcaveFloor"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConcaveSmall/ConcaveFloor"]
transform = Transform3D(25, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0) transform = Transform3D(25, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0)
shape = SubResource("27") shape = SubResource("27")
debug_color = Color(0, 0.533333, 1, 1)
[node name="ConcaveFloor2" type="StaticBody3D" parent="Floors/ConcaveSmall"] [node name="ConcaveFloor2" type="StaticBody3D" parent="Floors/ConcaveSmall"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10)
@@ -227,6 +201,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConcaveSmall/ConcaveFloor2"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConcaveSmall/ConcaveFloor2"]
transform = Transform3D(25, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0) transform = Transform3D(25, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0)
shape = SubResource("27") shape = SubResource("27")
debug_color = Color(0, 0.533333, 1, 1)
[node name="ConcaveBig" type="Node3D" parent="Floors"] [node name="ConcaveBig" type="Node3D" parent="Floors"]
@@ -238,6 +213,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConcaveBig/ConcaveFloor"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/ConcaveBig/ConcaveFloor"]
shape = SubResource("28") shape = SubResource("28")
debug_color = Color(0, 0.533333, 1, 1)
[node name="BoxSmall" type="Node3D" parent="Floors"] [node name="BoxSmall" type="Node3D" parent="Floors"]
@@ -251,6 +227,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/BoxSmall/BoxFloor"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/BoxSmall/BoxFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
shape = SubResource("29") shape = SubResource("29")
debug_color = Color(0, 0.533333, 1, 1)
[node name="BoxFloor2" type="StaticBody3D" parent="Floors/BoxSmall"] [node name="BoxFloor2" type="StaticBody3D" parent="Floors/BoxSmall"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10)
@@ -262,6 +239,7 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/BoxSmall/BoxFloor2"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/BoxSmall/BoxFloor2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
shape = SubResource("29") shape = SubResource("29")
debug_color = Color(0, 0.533333, 1, 1)
[node name="BoxBig" type="Node3D" parent="Floors"] [node name="BoxBig" type="Node3D" parent="Floors"]
@@ -274,12 +252,9 @@ mesh = SubResource("23")
[node name="CollisionShape" type="CollisionShape3D" parent="Floors/BoxBig/BoxFloor"] [node name="CollisionShape" type="CollisionShape3D" parent="Floors/BoxBig/BoxFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
shape = SubResource("30") shape = SubResource("30")
debug_color = Color(0, 0.533333, 1, 1)
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.604, 22.124) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.604, 22.124)
far = 1000.0 far = 1000.0
script = ExtResource("4") script = ExtResource("4")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 14.6965, -5.95932)
omni_range = 50.0

View File

@@ -22,7 +22,7 @@ script = ExtResource("2")
[node name="DynamicShapes" type="Node3D" parent="."] [node name="DynamicShapes" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0)
[node name="RigidBodyBox" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyBox" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 1, 0)
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_y = true axis_lock_angular_y = true
@@ -32,8 +32,9 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"]
transform = Transform3D(0.6, 0, 0, 0, 1, 0, 0, 0, 0.6, 0, 0, 0) transform = Transform3D(0.6, 0, 0, 0, 1, 0, 0, 0, 0.6, 0, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCapsule" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCapsule" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1.0034, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1.0034, 0)
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_y = true axis_lock_angular_y = true
@@ -43,8 +44,9 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCylinder" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCylinder" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0034, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0034, 0)
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_y = true axis_lock_angular_y = true
@@ -54,8 +56,9 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"]
transform = Transform3D(0.8, 0, 0, 0, 1, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 1, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyConvex" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyConvex" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 1.97795, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 1.97795, 0)
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_y = true axis_lock_angular_y = true
@@ -65,8 +68,9 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"]
transform = Transform3D(1.5, 0, 0, 0, 2, 0, 0, 0, 1.5, 0, 0, 0) transform = Transform3D(1.5, 0, 0, 0, 2, 0, 0, 0, 1.5, 0, 0, 0)
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodySphere" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodySphere" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 1, 0)
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_y = true axis_lock_angular_y = true
@@ -76,6 +80,7 @@ script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="StaticBodyPlane" parent="." instance=ExtResource("3")] [node name="StaticBodyPlane" parent="." instance=ExtResource("3")]
@@ -83,6 +88,3 @@ shape = SubResource("5")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.604, 22.124) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.604, 22.124)
fov = 35.0 fov = 35.0
script = ExtResource("4") script = ExtResource("4")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 50.0

View File

@@ -22,50 +22,52 @@ script = ExtResource("2")
[node name="DynamicShapes" type="Node3D" parent="."] [node name="DynamicShapes" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.35591, 0)
[node name="RigidBodyBox" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyBox" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 0)
script = ExtResource("1") script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"]
transform = Transform3D(0.579556, 0.0885213, 0.145926, 0, 0.939693, -0.205212, -0.155291, 0.330366, 0.544604, 0, 0, 0) transform = Transform3D(0.579556, 0.0885213, 0.145926, 0, 0.939693, -0.205212, -0.155291, 0.330366, 0.544604, 0, 0, 0)
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCapsule" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCapsule" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0)
script = ExtResource("1") script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCylinder" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCylinder" type="RigidBody3D" parent="DynamicShapes"]
script = ExtResource("1") script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"]
transform = Transform3D(0.772741, -0.258819, 2.59821e-08, 0.2, 0.933013, -0.207055, 0.0535898, 0.25, 0.772741, 0, 0, 0) transform = Transform3D(0.772741, -0.258819, 2.59821e-08, 0.2, 0.933013, -0.207055, 0.0535898, 0.25, 0.772741, 0, 0, 0)
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyConvex" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyConvex" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
script = ExtResource("1") script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"]
transform = Transform3D(1.5, 0, 0, 0, 1.93185, -0.388229, 0, 0.517638, 1.44889, 0, 0, 0) transform = Transform3D(1.5, 0, 0, 0, 1.93185, -0.388229, 0, 0.517638, 1.44889, 0, 0, 0)
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodySphere" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodySphere" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0)
script = ExtResource("1") script = ExtResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0) transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="StaticScene" parent="." instance=ExtResource("6")] [node name="StaticScene" parent="." instance=ExtResource("6")]
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.53602, 22.1236) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.53602, 22.1236)
script = ExtResource("4") script = ExtResource("4")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 50.0

View File

@@ -4,9 +4,9 @@
[node name="Test" type="Node3D"] [node name="Test" type="Node3D"]
script = ExtResource("1") script = ExtResource("1")
_enable_debug_collision = false
row_size = 50 row_size = 50
column_size = 50 column_size = 50
depth_size = 50 depth_size = 50
_enable_debug_collision = false
[node name="Objects" type="Node3D" parent="."] [node name="Objects" type="Node3D" parent="."]

View File

@@ -20,10 +20,10 @@ points = PackedVector3Array(-0.7, 0, -0.7, -0.3, 0, 0.8, 0.8, 0, -0.3, 0, -1, 0)
[node name="Test" type="Node3D"] [node name="Test" type="Node3D"]
script = ExtResource("1") script = ExtResource("1")
_enable_debug_collision = false spawns = Array[NodePath]([NodePath("SpawnTarget1"), NodePath("SpawnTarget2"), NodePath("SpawnTarget3"), NodePath("SpawnTarget4"), NodePath("SpawnTarget5"), NodePath("SpawnTarget6"), NodePath("SpawnTarget7"), NodePath("SpawnTarget8"), NodePath("SpawnTarget9"), NodePath("SpawnTarget10"), NodePath("SpawnTarget11"), NodePath("SpawnTarget12"), NodePath("SpawnTarget13"), NodePath("SpawnTarget14"), NodePath("SpawnTarget15"), NodePath("SpawnTarget16")])
spawns = ["SpawnTarget1", "SpawnTarget2", "SpawnTarget3", "SpawnTarget4", "SpawnTarget5", "SpawnTarget6", "SpawnTarget7", "SpawnTarget8", "SpawnTarget9", "SpawnTarget10", "SpawnTarget11", "SpawnTarget12", "SpawnTarget13", "SpawnTarget14", "SpawnTarget15", "SpawnTarget16"]
spawn_count = 200 spawn_count = 200
spawn_randomize = Vector3(0.2, 0.2, 0.2) spawn_randomize = Vector3(0.2, 0.2, 0.2)
_enable_debug_collision = false
[node name="Options" parent="." instance=ExtResource("4")] [node name="Options" parent="." instance=ExtResource("4")]
@@ -78,35 +78,40 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38.368, 7, -20.8078)
[node name="DynamicShapes" type="Node3D" parent="."] [node name="DynamicShapes" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.3192, 1.2359, 38.0117) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.3192, 1.2359, 38.0117)
[node name="RigidBodyBox" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyBox" type="RigidBody3D" parent="DynamicShapes"]
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"]
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCapsule" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCapsule" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCylinder" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCylinder" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyConvex" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyConvex" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0) transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodySphere" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodySphere" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"]
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="StaticScene" parent="." instance=ExtResource("5")] [node name="StaticScene" parent="." instance=ExtResource("5")]
@@ -115,22 +120,23 @@ shape = SubResource("5")
[node name="CollisionShape1" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape1" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(-1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 0, 0, 1, -50, 0, 0) transform = Transform3D(-1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 0, 0, 1, -50, 0, 0)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape2" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(-1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0, 1, 50, 0, 0) transform = Transform3D(-1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0, 1, 50, 0, 0)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="CollisionShape3" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape3" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(2.6543e-14, 1.62921e-07, 1, 1, -1.62921e-07, 1.56125e-19, 1.62921e-07, 1, -1.62921e-07, 0, 0, -50) transform = Transform3D(2.6543e-14, 1.62921e-07, 1, 1, -1.62921e-07, 1.56125e-19, 1.62921e-07, 1, -1.62921e-07, 0, 0, -50)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="CollisionShape4" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape4" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(2.6543e-14, 1.62921e-07, -1, 1, -1.62921e-07, -1.56125e-19, -1.62921e-07, -1, -1.62921e-07, 0, 0, 50) transform = Transform3D(2.6543e-14, 1.62921e-07, -1, 1, -1.62921e-07, -1.56125e-19, -1.62921e-07, -1, -1.62921e-07, 0, 0, 50)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.881757, 0.471705, 0, -0.471705, 0.881757, 0, 20.4125, 41.0426) transform = Transform3D(1, 0, 0, 0, 0.881757, 0.471705, 0, -0.471705, 0.881757, 0, 20.4125, 41.0426)
script = ExtResource("3") script = ExtResource("3")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 80.0

View File

@@ -20,10 +20,10 @@ points = PackedVector3Array(-0.7, 0, -0.7, -0.3, 0, 0.8, 0.8, 0, -0.3, 0, -1, 0)
[node name="Test" type="Node3D"] [node name="Test" type="Node3D"]
script = ExtResource("2") script = ExtResource("2")
_enable_debug_collision = false spawns = Array[NodePath]([NodePath("SpawnTarget1")])
spawns = ["SpawnTarget1"]
spawn_count = 500 spawn_count = 500
spawn_randomize = Vector3(0.2, 0.2, 0.2) spawn_randomize = Vector3(0.2, 0.2, 0.2)
_enable_debug_collision = false
[node name="Options" parent="." instance=ExtResource("4")] [node name="Options" parent="." instance=ExtResource("4")]
@@ -33,58 +33,64 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7.06418, -1.24693)
[node name="DynamicShapes" type="Node3D" parent="."] [node name="DynamicShapes" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.3192, 1.2359, 38.0117) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.3192, 1.2359, 38.0117)
[node name="RigidBodyBox" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyBox" type="RigidBody3D" parent="DynamicShapes"]
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyBox"]
shape = SubResource("1") shape = SubResource("1")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCapsule" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCapsule" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCapsule"]
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyCylinder" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyCylinder" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyCylinder"]
shape = SubResource("3") shape = SubResource("3")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodyConvex" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodyConvex" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodyConvex"]
shape = SubResource("4") shape = SubResource("4")
debug_color = Color(1, 1, 0, 1)
[node name="RigidBodySphere" type="RigidDynamicBody3D" parent="DynamicShapes"] [node name="RigidBodySphere" type="RigidBody3D" parent="DynamicShapes"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"] [node name="CollisionShape" type="CollisionShape3D" parent="DynamicShapes/RigidBodySphere"]
shape = SubResource("5") shape = SubResource("5")
debug_color = Color(1, 1, 0, 1)
[node name="StaticBodyWalls" type="StaticBody3D" parent="."] [node name="StaticBodyWalls" type="StaticBody3D" parent="."]
[node name="CollisionShape1" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape1" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(-1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 0, 0, 1, -5, 0, 0) transform = Transform3D(-1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 0, 0, 1, -5, 0, 0)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="CollisionShape2" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape2" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(-1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0, 1, 5, 0, 0) transform = Transform3D(-1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0, 1, 5, 0, 0)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="CollisionShape3" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape3" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(2.6543e-14, 1.62921e-07, 1, 1, -1.62921e-07, 1.56125e-19, 1.62921e-07, 1, -1.62921e-07, 0, 0, -5) transform = Transform3D(2.6543e-14, 1.62921e-07, 1, 1, -1.62921e-07, 1.56125e-19, 1.62921e-07, 1, -1.62921e-07, 0, 0, -5)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="CollisionShape4" type="CollisionShape3D" parent="StaticBodyWalls"] [node name="CollisionShape4" type="CollisionShape3D" parent="StaticBodyWalls"]
transform = Transform3D(2.6543e-14, 1.62921e-07, -1, 1, -1.62921e-07, -1.56125e-19, -1.62921e-07, -1, -1.62921e-07, 0, 0, 5) transform = Transform3D(2.6543e-14, 1.62921e-07, -1, 1, -1.62921e-07, -1.56125e-19, -1.62921e-07, -1, -1.62921e-07, 0, 0, 5)
shape = SubResource("6") shape = SubResource("6")
debug_color = Color(0, 0.533333, 1, 1)
[node name="StaticScene" parent="." instance=ExtResource("1")] [node name="StaticScene" parent="." instance=ExtResource("1")]
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.881757, 0.471705, 0, -0.471705, 0.881757, 0, 20.4125, 41.0426) transform = Transform3D(1, 0, 0, 0, 0.881757, 0.471705, 0, -0.471705, 0.881757, 0, 20.4125, 41.0426)
script = ExtResource("5") script = ExtResource("5")
[node name="OmniLight" type="OmniLight3D" parent="Camera3D"]
omni_range = 80.0

View File

@@ -1,7 +1,6 @@
[gd_scene load_steps=4 format=3 uid="uid://cl2vpuxqgnylc"] [gd_scene load_steps=3 format=3 uid="uid://cl2vpuxqgnylc"]
[ext_resource type="Shape3D" path="res://assets/robot_head/godot3_robot_head_collision.tres" id="1"] [ext_resource type="Shape3D" path="res://assets/robot_head/godot3_robot_head_collision.tres" id="1"]
[ext_resource type="ArrayMesh" path="res://assets/robot_head/godot3_robot_head.mesh" id="2"]
[ext_resource type="PackedScene" uid="uid://3gkujifjokqw" path="res://tests/static_scene_plane.tscn" id="3"] [ext_resource type="PackedScene" uid="uid://3gkujifjokqw" path="res://tests/static_scene_plane.tscn" id="3"]
[node name="StaticScene" type="Node3D"] [node name="StaticScene" type="Node3D"]
@@ -11,8 +10,6 @@
[node name="StaticBodyHead" type="StaticBody3D" parent="."] [node name="StaticBodyHead" type="StaticBody3D" parent="."]
transform = Transform3D(10, 0, 0, 0, 8.66025, 5, 0, -5, 8.66025, 0, -11.1389, 2.29332) transform = Transform3D(10, 0, 0, 0, 8.66025, 5, 0, -5, 8.66025, 0, -11.1389, 2.29332)
[node name="RobotHead" type="MeshInstance3D" parent="StaticBodyHead"]
mesh = ExtResource("2")
[node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyHead"] [node name="CollisionShape" type="CollisionShape3D" parent="StaticBodyHead"]
shape = ExtResource("1") shape = ExtResource("1")
debug_color = Color(0, 0.533333, 1, 1)

View File

@@ -1,16 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://3gkujifjokqw"] [gd_scene load_steps=2 format=3 uid="uid://3gkujifjokqw"]
[sub_resource type="PlaneMesh" id="1"]
[sub_resource type="ConcavePolygonShape3D" id="2"] [sub_resource type="ConcavePolygonShape3D" id="2"]
data = PackedVector3Array(-1, 0, 1, 1, 0, -1, 1, 0, 1, -1, 0, 1, -1, 0, -1, 1, 0, -1) data = PackedVector3Array(-1, 0, 1, 1, 0, -1, 1, 0, 1, -1, 0, 1, -1, 0, -1, 1, 0, -1)
[node name="StaticBodyPlane" type="StaticBody3D"] [node name="StaticBodyPlane" type="StaticBody3D"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(50, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0)
mesh = SubResource("1")
[node name="CollisionShape" type="CollisionShape3D" parent="."] [node name="CollisionShape" type="CollisionShape3D" parent="."]
transform = Transform3D(50, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0) transform = Transform3D(50, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 0)
shape = SubResource("2") shape = SubResource("2")
debug_color = Color(0, 0.533333, 1, 1)

View File

@@ -7,9 +7,6 @@ offset_left = 10.0
offset_top = 106.719 offset_top = 106.719
offset_right = 125.0 offset_right = 125.0
offset_bottom = 126.719 offset_bottom = 126.719
text = "TEST OPTIONS" text = "Test Options"
flat = false flat = false
script = ExtResource("1") script = ExtResource("1")
__meta__ = {
"_edit_use_anchors_": false
}

View File

@@ -5,6 +5,8 @@ func _ready() -> void:
match System.get_physics_engine(): match System.get_physics_engine():
System.PhysicsEngine.GODOT_PHYSICS: System.PhysicsEngine.GODOT_PHYSICS:
engine_name = "GodotPhysics 3D" engine_name = "GodotPhysics 3D"
System.PhysicsEngine.JOLT_PHYSICS:
engine_name = "Jolt Physics"
System.PhysicsEngine.OTHER: System.PhysicsEngine.OTHER:
var engine_setting := str(ProjectSettings.get_setting("physics/3d/physics_engine")) var engine_setting := str(ProjectSettings.get_setting("physics/3d/physics_engine"))
engine_name = "Other (%s)" % engine_setting engine_name = "Other (%s)" % engine_setting

View File

@@ -0,0 +1,6 @@
extends HBoxContainer
func _on_h_slider_value_changed(value: float) -> void:
$Value.text = str(roundi(value))
Engine.max_physics_steps_per_frame = roundi(value)

View File

@@ -0,0 +1 @@
uid://cvoeuonqmsye1

View File

@@ -0,0 +1,5 @@
extends CheckButton
func _on_check_button_toggled(toggled_on: bool) -> void:
get_tree().physics_interpolation = toggled_on

View File

@@ -0,0 +1 @@
uid://ijebwwx4t8et

View File

@@ -2,6 +2,7 @@ extends Node
enum PhysicsEngine { enum PhysicsEngine {
GODOT_PHYSICS, GODOT_PHYSICS,
JOLT_PHYSICS,
OTHER, OTHER,
} }
@@ -20,6 +21,8 @@ func _enter_tree() -> void:
_engine = PhysicsEngine.GODOT_PHYSICS _engine = PhysicsEngine.GODOT_PHYSICS
"GodotPhysics3D": "GodotPhysics3D":
_engine = PhysicsEngine.GODOT_PHYSICS _engine = PhysicsEngine.GODOT_PHYSICS
"Jolt Physics":
_engine = PhysicsEngine.JOLT_PHYSICS
_: _:
_engine = PhysicsEngine.OTHER _engine = PhysicsEngine.OTHER

View File

@@ -0,0 +1,6 @@
extends HBoxContainer
func _on_h_slider_value_changed(value: float) -> void:
$Value.text = str(roundi(value))
Engine.physics_ticks_per_second = roundi(value * Engine.time_scale)

View File

@@ -0,0 +1 @@
uid://7kql0xtuc7ny

View File

@@ -0,0 +1,8 @@
extends HBoxContainer
func _on_h_slider_value_changed(value: float) -> void:
value = maxf(0.1, value)
$Value.text = "%.1f×" % value
Engine.time_scale = value
Engine.physics_ticks_per_second = $"../TicksPerSecond/HSlider".value * value

View File

@@ -0,0 +1 @@
uid://beqnv31yip0bl

View File

@@ -143,6 +143,7 @@ reset_position={
common/physics_ticks_per_second=120 common/physics_ticks_per_second=120
3d/default_gravity=22.0 3d/default_gravity=22.0
3d/physics_engine="Jolt Physics"
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]

View File

@@ -84,6 +84,7 @@ exit={
common/physics_ticks_per_second=120 common/physics_ticks_per_second=120
3d/default_gravity=13.0 3d/default_gravity=13.0
3d/physics_engine="Jolt Physics"
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]

View File

@@ -80,6 +80,7 @@ jump={
[physics] [physics]
common/physics_ticks_per_second=120 common/physics_ticks_per_second=120
3d/physics_engine="Jolt Physics"
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]

View File

@@ -158,6 +158,7 @@ cycle_mood={
[physics] [physics]
common/physics_ticks_per_second=120 common/physics_ticks_per_second=120
3d/physics_engine="Jolt Physics"
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]

View File

@@ -149,6 +149,7 @@ pick_block={
common/physics_ticks_per_second=120 common/physics_ticks_per_second=120
3d/default_gravity=20.0 3d/default_gravity=20.0
3d/physics_engine="Jolt Physics"
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]