From 8241be5817945c190845b331315dcdea8e3ea555 Mon Sep 17 00:00:00 2001 From: PouleyKetchoupp Date: Wed, 9 Dec 2020 20:01:30 -0700 Subject: [PATCH] Add demo: Physics Tests 2D Similar to its 3D counterpart, with tests using 2D physics. --- 2d/physics_tests/README.md | 18 ++ 2d/physics_tests/assets/godot-head.png | Bin 0 -> 5568 bytes 2d/physics_tests/assets/godot-head.png.import | 34 ++++ 2d/physics_tests/icon.png | Bin 0 -> 4441 bytes 2d/physics_tests/icon.png.import | 34 ++++ 2d/physics_tests/main.tscn | 174 ++++++++++++++++++ 2d/physics_tests/project.godot | 75 ++++++++ 2d/physics_tests/screenshots/.gdignore | 0 2d/physics_tests/screenshots/screenshot.png | Bin 0 -> 165643 bytes 2d/physics_tests/test.gd | 92 +++++++++ 2d/physics_tests/tests.gd | 35 ++++ 2d/physics_tests/tests/dynamic_box.tscn | 10 + .../tests/functional/test_pyramid.gd | 41 +++++ .../tests/functional/test_pyramid.tscn | 12 ++ .../tests/functional/test_raycasting.gd | 69 +++++++ .../tests/functional/test_raycasting.tscn | 68 +++++++ .../tests/functional/test_shapes.tscn | 64 +++++++ .../tests/functional/test_stack.gd | 39 ++++ .../tests/functional/test_stack.tscn | 12 ++ .../tests/performance/test_perf_broadphase.gd | 149 +++++++++++++++ .../performance/test_perf_broadphase.tscn | 9 + .../tests/performance/test_perf_contacts.gd | 161 ++++++++++++++++ .../tests/performance/test_perf_contacts.tscn | 70 +++++++ 2d/physics_tests/tests/static_scene.tscn | 10 + 2d/physics_tests/tests/static_scene_flat.tscn | 12 ++ 2d/physics_tests/tests/test_options.tscn | 16 ++ 2d/physics_tests/tests_menu.gd | 54 ++++++ 2d/physics_tests/utils/container_log.gd | 41 +++++ 2d/physics_tests/utils/label_engine.gd | 12 ++ 2d/physics_tests/utils/label_fps.gd | 5 + 2d/physics_tests/utils/label_test.gd | 13 ++ 2d/physics_tests/utils/label_version.gd | 5 + 2d/physics_tests/utils/option_menu.gd | 47 +++++ 2d/physics_tests/utils/scroll_log.gd | 14 ++ 2d/physics_tests/utils/system.gd | 50 +++++ 2d/physics_tests/utils/system_log.gd | 20 ++ .../tests/functional/test_raycasting.gd | 0 37 files changed, 1465 insertions(+) create mode 100644 2d/physics_tests/README.md create mode 100644 2d/physics_tests/assets/godot-head.png create mode 100644 2d/physics_tests/assets/godot-head.png.import create mode 100644 2d/physics_tests/icon.png create mode 100644 2d/physics_tests/icon.png.import create mode 100644 2d/physics_tests/main.tscn create mode 100644 2d/physics_tests/project.godot create mode 100644 2d/physics_tests/screenshots/.gdignore create mode 100644 2d/physics_tests/screenshots/screenshot.png create mode 100644 2d/physics_tests/test.gd create mode 100644 2d/physics_tests/tests.gd create mode 100644 2d/physics_tests/tests/dynamic_box.tscn create mode 100644 2d/physics_tests/tests/functional/test_pyramid.gd create mode 100644 2d/physics_tests/tests/functional/test_pyramid.tscn create mode 100644 2d/physics_tests/tests/functional/test_raycasting.gd create mode 100644 2d/physics_tests/tests/functional/test_raycasting.tscn create mode 100644 2d/physics_tests/tests/functional/test_shapes.tscn create mode 100644 2d/physics_tests/tests/functional/test_stack.gd create mode 100644 2d/physics_tests/tests/functional/test_stack.tscn create mode 100644 2d/physics_tests/tests/performance/test_perf_broadphase.gd create mode 100644 2d/physics_tests/tests/performance/test_perf_broadphase.tscn create mode 100644 2d/physics_tests/tests/performance/test_perf_contacts.gd create mode 100644 2d/physics_tests/tests/performance/test_perf_contacts.tscn create mode 100644 2d/physics_tests/tests/static_scene.tscn create mode 100644 2d/physics_tests/tests/static_scene_flat.tscn create mode 100644 2d/physics_tests/tests/test_options.tscn create mode 100644 2d/physics_tests/tests_menu.gd create mode 100644 2d/physics_tests/utils/container_log.gd create mode 100644 2d/physics_tests/utils/label_engine.gd create mode 100644 2d/physics_tests/utils/label_fps.gd create mode 100644 2d/physics_tests/utils/label_test.gd create mode 100644 2d/physics_tests/utils/label_version.gd create mode 100644 2d/physics_tests/utils/option_menu.gd create mode 100644 2d/physics_tests/utils/scroll_log.gd create mode 100644 2d/physics_tests/utils/system.gd create mode 100644 2d/physics_tests/utils/system_log.gd create mode 100644 3d/physics_tests/tests/functional/test_raycasting.gd diff --git a/2d/physics_tests/README.md b/2d/physics_tests/README.md new file mode 100644 index 00000000..d0601c43 --- /dev/null +++ b/2d/physics_tests/README.md @@ -0,0 +1,18 @@ +# 2D Physics Tests + +This demo contains a series of tests for the 2D +physics engine. + +They can be used for different purpose: +- Functional tests to check for regressions and + behavior of the 2D physics engine +- Performance tests to evaluate performance + of the 2D physics engine + +Language: GDScript + +Renderer: GLES 2 + +## Screenshots + +![Screenshot](screenshots/screenshot.png) diff --git a/2d/physics_tests/assets/godot-head.png b/2d/physics_tests/assets/godot-head.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bbf7fa32b3e488c8efdf5d7d66a215fde82862 GIT binary patch literal 5568 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 VS2gc*@bBPNSzbe~@|Ah;{{YzNZxR3i literal 0 HcmV?d00001 diff --git a/2d/physics_tests/assets/godot-head.png.import b/2d/physics_tests/assets/godot-head.png.import new file mode 100644 index 00000000..7659f2a0 --- /dev/null +++ b/2d/physics_tests/assets/godot-head.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/godot-head.png-cc6844293d74c4f45ec6c4ab08de67ee.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/godot-head.png" +dest_files=[ "res://.import/godot-head.png-cc6844293d74c4f45ec6c4ab08de67ee.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/2d/physics_tests/icon.png b/2d/physics_tests/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..65024fbc935451d41f65b7bf581acb8469d15db8 GIT binary patch literal 4441 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%0DZ9k?%~PFK6{^P#CGf} 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 X@@jamu~LYFfRCE8mQo4KJm7x-SY0H} literal 0 HcmV?d00001 diff --git a/2d/physics_tests/test.gd b/2d/physics_tests/test.gd new file mode 100644 index 00000000..9e9099d9 --- /dev/null +++ b/2d/physics_tests/test.gd @@ -0,0 +1,92 @@ +class_name Test +extends Node2D + + +signal wait_done() + +var _timer +var _timer_started = false + +var _wait_physics_ticks_counter = 0 + + +class Line: + var pos_start + var pos_end + var color + +var _lines = [] + + +func _physics_process(_delta): + if (_wait_physics_ticks_counter > 0): + _wait_physics_ticks_counter -= 1 + if (_wait_physics_ticks_counter == 0): + emit_signal("wait_done") + + +func _draw(): + for line in _lines: + draw_line(line.pos_start, line.pos_end, line.color, 1.5) + + +func add_line(pos_start, pos_end, color): + var line = Line.new() + line.pos_start = pos_start + line.pos_end = pos_end + line.color = color + _lines.push_back(line) + update() + + +func clear_lines(): + _lines.clear() + update() + + +func create_rigidbody_box(size): + var template_shape = RectangleShape2D.new() + template_shape.extents = 0.5 * size + + var template_collision = CollisionShape2D.new() + template_collision.shape = template_shape + + var template_body = RigidBody2D.new() + template_body.add_child(template_collision) + + return template_body + + +func start_timer(timeout): + if _timer == null: + _timer = Timer.new() + _timer.one_shot = true + add_child(_timer) + _timer.connect("timeout", self, "_on_timer_done") + else: + cancel_timer() + + _timer.start(timeout) + _timer_started = true + + return _timer + + +func cancel_timer(): + if _timer_started: + _timer.paused = true + _timer.emit_signal("timeout") + _timer.paused = false + + +func is_timer_canceled(): + return _timer.paused + + +func wait_for_physics_ticks(tick_count): + _wait_physics_ticks_counter = tick_count + return self + + +func _on_timer_done(): + _timer_started = false diff --git a/2d/physics_tests/tests.gd b/2d/physics_tests/tests.gd new file mode 100644 index 00000000..43eb805e --- /dev/null +++ b/2d/physics_tests/tests.gd @@ -0,0 +1,35 @@ +extends Node + + +var _tests = [ + { + "id": "Functional Tests/Shapes", + "path": "res://tests/functional/test_shapes.tscn", + }, + { + "id": "Functional Tests/Box Stack", + "path": "res://tests/functional/test_stack.tscn", + }, + { + "id": "Functional Tests/Box Pyramid", + "path": "res://tests/functional/test_pyramid.tscn", + }, + { + "id": "Functional Tests/Raycasting", + "path": "res://tests/functional/test_raycasting.tscn", + }, + { + "id": "Performance Tests/Broadphase", + "path": "res://tests/performance/test_perf_broadphase.tscn", + }, + { + "id": "Performance Tests/Contacts", + "path": "res://tests/performance/test_perf_contacts.tscn", + }, +] + + +func _ready(): + var test_menu = $TestsMenu + for test in _tests: + test_menu.add_test(test.id, test.path) diff --git a/2d/physics_tests/tests/dynamic_box.tscn b/2d/physics_tests/tests/dynamic_box.tscn new file mode 100644 index 00000000..716f9309 --- /dev/null +++ b/2d/physics_tests/tests/dynamic_box.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 20, 20 ) + +[node name="StackBox" type="RigidBody2D"] +position = Vector2( -180, -20 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) diff --git a/2d/physics_tests/tests/functional/test_pyramid.gd b/2d/physics_tests/tests/functional/test_pyramid.gd new file mode 100644 index 00000000..8291b246 --- /dev/null +++ b/2d/physics_tests/tests/functional/test_pyramid.gd @@ -0,0 +1,41 @@ +extends Test + + +export(int, 1, 100) var height = 10 +export(Vector2) var box_size = Vector2(40.0, 40.0) +export(Vector2) var box_spacing = Vector2(0.0, 0.0) + + +func _ready(): + _create_pyramid() + + +func _create_pyramid(): + var root_node = $Pyramid + + var template_body = create_rigidbody_box(box_size) + + var pos_y = -0.5 * box_size.y - box_spacing.y + + for level in height: + var level_index = height - level - 1 + var num_boxes = 2 * level_index + 1 + + var row_node = Node2D.new() + row_node.position = Vector2(0.0, pos_y) + row_node.name = "Row%02d" % (level + 1) + root_node.add_child(row_node) + + var pos_x = -0.5 * (num_boxes - 1) * (box_size.x + box_spacing.x) + + for box_index in num_boxes: + var box = template_body.duplicate() + box.position = Vector2(pos_x, 0.0) + box.name = "Box%02d" % (box_index + 1) + row_node.add_child(box) + + pos_x += box_size.x + box_spacing.x + + pos_y -= box_size.y + box_spacing.y + + template_body.queue_free() diff --git a/2d/physics_tests/tests/functional/test_pyramid.tscn b/2d/physics_tests/tests/functional/test_pyramid.tscn new file mode 100644 index 00000000..f229c410 --- /dev/null +++ b/2d/physics_tests/tests/functional/test_pyramid.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://tests/functional/test_pyramid.gd" type="Script" id=1] +[ext_resource path="res://tests/static_scene_flat.tscn" type="PackedScene" id=2] + +[node name="Test" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Pyramid" type="Node2D" parent="."] +position = Vector2( 512, 500 ) + +[node name="StaticSceneFlat" parent="." instance=ExtResource( 2 )] diff --git a/2d/physics_tests/tests/functional/test_raycasting.gd b/2d/physics_tests/tests/functional/test_raycasting.gd new file mode 100644 index 00000000..c05c3653 --- /dev/null +++ b/2d/physics_tests/tests/functional/test_raycasting.gd @@ -0,0 +1,69 @@ +extends Test + + +var _do_raycasts = false + + +func _ready(): + yield(start_timer(0.5), "timeout") + if is_timer_canceled(): + return + + _do_raycasts = true + + +func _physics_process(_delta): + if !_do_raycasts: + return + + _do_raycasts = false + + Log.print_log("* Start Raycasting...") + + clear_lines() + + for shape in $Shapes.get_children(): + var body = shape as PhysicsBody2D + var space_state = body.get_world_2d().direct_space_state + + Log.print_log("* Testing: %s" % body.name) + + var center = body.global_transform.origin + + # Raycast entering from the top. + var res = _add_raycast(space_state, center - Vector2(0, 100), center) + Log.print_log("Raycast in: %s" % ("HIT" if res else "NO HIT")) + + # Raycast exiting from inside. + center.x -= 20 + res = _add_raycast(space_state, center, center + Vector2(0, 200)) + Log.print_log("Raycast out: %s" % ("HIT" if res else "NO HIT")) + + # Raycast all inside. + center.x += 40 + res = _add_raycast(space_state, center, center + Vector2(0, 40)) + Log.print_log("Raycast inside: %s" % ("HIT" if res else "NO HIT")) + + if body.name.ends_with("ConcavePolygon"): + # Raycast inside an internal face. + center.x += 20 + res = _add_raycast(space_state, center, center + Vector2(0, 40)) + Log.print_log("Raycast inside face: %s" % ("HIT" if res else "NO HIT")) + + +func _add_raycast(space_state, pos_start, pos_end): + var result = space_state.intersect_ray(pos_start, pos_end) + var color + if result: + color = Color.green + else: + color = Color.red.darkened(0.5) + + # Draw raycast line. + add_line(pos_start, pos_end, color) + + # Draw raycast arrow. + add_line(pos_end, pos_end + Vector2(-5, -10), color) + add_line(pos_end, pos_end + Vector2(5, -10), color) + + return result diff --git a/2d/physics_tests/tests/functional/test_raycasting.tscn b/2d/physics_tests/tests/functional/test_raycasting.tscn new file mode 100644 index 00000000..63990b92 --- /dev/null +++ b/2d/physics_tests/tests/functional/test_raycasting.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://assets/godot-head.png" type="Texture" id=1] +[ext_resource path="res://tests/functional/test_raycasting.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 40, 60 ) + +[sub_resource type="CapsuleShape2D" id=2] +radius = 30.0 +height = 50.0 + +[sub_resource type="CircleShape2D" id=3] +radius = 60.0 + +[node name="Test" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Shapes" type="Node2D" parent="."] +z_index = -1 +z_as_relative = false + +[node name="RigidBodyRectangle" type="RigidBody2D" parent="Shapes"] +position = Vector2( 114.877, 248.76 ) +mode = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodyRectangle"] +rotation = -1.19206 +scale = Vector2( 1.5, 1.5 ) +shape = SubResource( 1 ) + +[node name="RigidBodyCapsule" type="RigidBody2D" parent="Shapes"] +position = Vector2( 313.583, 261.204 ) +mode = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodyCapsule"] +rotation = -0.202458 +scale = Vector2( 1.5, 1.5 ) +shape = SubResource( 2 ) + +[node name="RigidBodyConcavePolygon" type="RigidBody2D" parent="Shapes"] +position = Vector2( 514.899, 252.771 ) +mode = 3 + +[node name="GodotIcon" type="Sprite" parent="Shapes/RigidBodyConcavePolygon"] +modulate = Color( 1, 1, 1, 0.392157 ) +texture = ExtResource( 1 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Shapes/RigidBodyConcavePolygon"] +polygon = PoolVector2Array( -5.93512, -43.2195, 6.44476, -42.9695, 11.127, -54.3941, 26.9528, -49.4309, 26.2037, -36.508, 37.5346, -28.1737, 47.6282, -34.3806, 58.0427, -20.9631, 51.113, -10.2876, 50.9869, 35.2694, 38.8, 47.5, 15.9852, 54.3613, -14.9507, 54.1845, -36.5, 48.1, -50.4828, 36.33, -51.3668, -9.98545, -57.8889, -20.5885, -46.9473, -34.7342, -37.4014, -28.547, -26.0876, -37.0323, -26.9862, -49.15, -11.4152, -54.5332 ) + +[node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="Shapes"] +position = Vector2( 738.975, 252.771 ) +mode = 3 + +[node name="GodotIcon" type="Sprite" parent="Shapes/RigidBodyConvexPolygon"] +modulate = Color( 1, 1, 1, 0.392157 ) +texture = ExtResource( 1 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Shapes/RigidBodyConvexPolygon"] +polygon = PoolVector2Array( 10.7, -54.5, 28.3596, -49.4067, 47.6282, -34.3806, 57.9717, -20.9447, 50.9869, 35.2694, 38.8, 47.5, 15.9852, 54.3613, -14.9507, 54.1845, -36.5, 48.1, -50.4828, 36.33, -58.0115, -20.515, -46.9473, -34.7342, -26.0876, -50.1138, -11.4152, -54.5332 ) + +[node name="RigidBodySphere" type="RigidBody2D" parent="Shapes"] +position = Vector2( 917.136, 270.868 ) +mode = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Shapes/RigidBodySphere"] +shape = SubResource( 3 ) diff --git a/2d/physics_tests/tests/functional/test_shapes.tscn b/2d/physics_tests/tests/functional/test_shapes.tscn new file mode 100644 index 00000000..93cce1f1 --- /dev/null +++ b/2d/physics_tests/tests/functional/test_shapes.tscn @@ -0,0 +1,64 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://assets/godot-head.png" type="Texture" id=1] +[ext_resource path="res://test.gd" type="Script" id=2] +[ext_resource path="res://tests/static_scene.tscn" type="PackedScene" id=6] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 20, 30 ) + +[sub_resource type="CapsuleShape2D" id=2] +radius = 20.0 +height = 30.0 + +[sub_resource type="CircleShape2D" id=3] +radius = 30.0 + +[node name="Test" type="Node2D"] +script = ExtResource( 2 ) + +[node name="DynamicShapes" type="Node2D" parent="."] + +[node name="RigidBodyRectangle" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 96, 127 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"] +rotation = 0.675442 +shape = SubResource( 1 ) + +[node name="RigidBodyCapsule" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 270.165, 139.444 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"] +rotation = -0.202458 +shape = SubResource( 2 ) + +[node name="RigidBodyConcavePolygon" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 683.614, 132.749 ) + +[node name="GodotIcon" type="Sprite" parent="DynamicShapes/RigidBodyConcavePolygon"] +scale = Vector2( 0.5, 0.5 ) +texture = ExtResource( 1 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="DynamicShapes/RigidBodyConcavePolygon"] +scale = Vector2( 0.5, 0.5 ) +polygon = PoolVector2Array( -5.93512, -43.2195, 6.44476, -42.9695, 11.127, -54.3941, 26.9528, -49.4309, 26.2037, -36.508, 37.5346, -28.1737, 47.6282, -34.3806, 58.0427, -20.9631, 51.113, -10.2876, 50.9869, 35.2694, 38.8, 47.5, 15.9852, 54.3613, -14.9507, 54.1845, -36.5, 48.1, -50.4828, 36.33, -51.3668, -9.98545, -57.8889, -20.5885, -46.9473, -34.7342, -37.4014, -28.547, -26.0876, -37.0323, -26.9862, -49.15, -11.4152, -54.5332 ) + +[node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 473.536, 134.336 ) + +[node name="GodotIcon" type="Sprite" parent="DynamicShapes/RigidBodyConvexPolygon"] +scale = Vector2( 0.5, 0.5 ) +texture = ExtResource( 1 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="DynamicShapes/RigidBodyConvexPolygon"] +scale = Vector2( 0.5, 0.5 ) +polygon = PoolVector2Array( 10.7, -54.5, 28.3596, -49.4067, 47.6282, -34.3806, 57.9717, -20.9447, 50.9869, 35.2694, 38.8, 47.5, 15.9852, 54.3613, -14.9507, 54.1845, -36.5, 48.1, -50.4828, 36.33, -58.0115, -20.515, -46.9473, -34.7342, -26.0876, -50.1138, -11.4152, -54.5332 ) + +[node name="RigidBodySphere" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 919.968, 115.129 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"] +shape = SubResource( 3 ) + +[node name="StaticScene" parent="." instance=ExtResource( 6 )] diff --git a/2d/physics_tests/tests/functional/test_stack.gd b/2d/physics_tests/tests/functional/test_stack.gd new file mode 100644 index 00000000..7198b589 --- /dev/null +++ b/2d/physics_tests/tests/functional/test_stack.gd @@ -0,0 +1,39 @@ +extends Test + + +export(int) var height = 10 +export(int) var width = 1 +export(Vector2) var box_size = Vector2(40.0, 40.0) +export(Vector2) var box_spacing = Vector2(0.0, 0.0) + + +func _ready(): + _create_stack() + + +func _create_stack(): + var root_node = $Stack + + var template_body = create_rigidbody_box(box_size) + + var pos_y = -0.5 * box_size.y - box_spacing.y + + for level in height: + var row_node = Node2D.new() + row_node.position = Vector2(0.0, pos_y) + row_node.name = "Row%02d" % (level + 1) + root_node.add_child(row_node) + + var pos_x = -0.5 * (width - 1) * (box_size.x + box_spacing.x) + + for box_index in width: + var box = template_body.duplicate() + box.position = Vector2(pos_x, 0.0) + box.name = "Box%02d" % (box_index + 1) + row_node.add_child(box) + + pos_x += box_size.x + box_spacing.x + + pos_y -= box_size.y + box_spacing.y + + template_body.queue_free() diff --git a/2d/physics_tests/tests/functional/test_stack.tscn b/2d/physics_tests/tests/functional/test_stack.tscn new file mode 100644 index 00000000..d4009805 --- /dev/null +++ b/2d/physics_tests/tests/functional/test_stack.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://tests/functional/test_stack.gd" type="Script" id=1] +[ext_resource path="res://tests/static_scene_flat.tscn" type="PackedScene" id=2] + +[node name="Test" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Stack" type="Node2D" parent="."] +position = Vector2( 512, 500 ) + +[node name="StaticSceneFlat" parent="." instance=ExtResource( 2 )] diff --git a/2d/physics_tests/tests/performance/test_perf_broadphase.gd b/2d/physics_tests/tests/performance/test_perf_broadphase.gd new file mode 100644 index 00000000..21d5edaa --- /dev/null +++ b/2d/physics_tests/tests/performance/test_perf_broadphase.gd @@ -0,0 +1,149 @@ +extends Test + + +const BOX_SIZE = Vector2(40, 40) +const BOX_SPACE = Vector2(50, 50) + +export(int, 1, 1000) var row_size = 100 +export(int, 1, 1000) var column_size = 100 + +var _objects = [] + +var _log_physics = false +var _log_physics_time = 0 +var _log_physics_time_start = 0 + + +func _ready(): + _create_objects() + + _log_physics_start() + yield(wait_for_physics_ticks(5), "wait_done") + _log_physics_stop() + + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + _add_objects() + + _log_physics_start() + yield(wait_for_physics_ticks(5), "wait_done") + _log_physics_stop() + + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + _move_objects() + + _log_physics_start() + yield(wait_for_physics_ticks(5), "wait_done") + _log_physics_stop() + + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + _remove_objects() + + _log_physics_start() + yield(wait_for_physics_ticks(5), "wait_done") + _log_physics_stop() + + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + Log.print_log("* Done.") + + +func _exit_tree(): + for object in _objects: + object.free() + + +func _physics_process(_delta): + if _log_physics: + var time = OS.get_ticks_usec() + var time_delta = time - _log_physics_time + var time_total = time - _log_physics_time_start + _log_physics_time = time + Log.print_log(" Physics Tick: %.3f ms (total = %.3f ms)" % [0.001 * time_delta, 0.001 * time_total]) + + +func _log_physics_start(): + _log_physics = true + _log_physics_time_start = OS.get_ticks_usec() + _log_physics_time = _log_physics_time_start + + +func _log_physics_stop(): + _log_physics = false + + +func _create_objects(): + _objects.clear() + + var template_body = create_rigidbody_box(BOX_SIZE) + template_body.gravity_scale = 0.0 + + Log.print_log("* Creating objects...") + var timer = OS.get_ticks_usec() + + var pos_x = -0.5 * (row_size - 1) * BOX_SPACE.x + + for row in row_size: + var pos_y = -0.5 * (column_size - 1) * BOX_SPACE.y + + for column in column_size: + var box = template_body.duplicate() + box.position = Vector2(pos_x, pos_y) + box.name = "Box%03d" % (row * column + 1) + _objects.push_back(box) + + pos_y += BOX_SPACE.y + + pos_x += BOX_SPACE.x + + timer = OS.get_ticks_usec() - timer + Log.print_log(" Create Time: %.3f ms" % (0.001 * timer)) + + template_body.queue_free() + + +func _add_objects(): + var root_node = $Objects + + Log.print_log("* Adding objects...") + var timer = OS.get_ticks_usec() + + for object in _objects: + root_node.add_child(object) + + timer = OS.get_ticks_usec() - timer + Log.print_log(" Add Time: %.3f ms" % (0.001 * timer)) + + +func _move_objects(): + Log.print_log("* Moving objects...") + var timer = OS.get_ticks_usec() + + for object in _objects: + object.position += BOX_SPACE + + timer = OS.get_ticks_usec() - timer + Log.print_log(" Move Time: %.3f ms" % (0.001 * timer)) + + +func _remove_objects(): + var root_node = $Objects + + Log.print_log("* Removing objects...") + var timer = OS.get_ticks_usec() + + for object in _objects: + root_node.remove_child(object) + + timer = OS.get_ticks_usec() - timer + Log.print_log(" Remove Time: %.3f ms" % (0.001 * timer)) diff --git a/2d/physics_tests/tests/performance/test_perf_broadphase.tscn b/2d/physics_tests/tests/performance/test_perf_broadphase.tscn new file mode 100644 index 00000000..0cc10fa1 --- /dev/null +++ b/2d/physics_tests/tests/performance/test_perf_broadphase.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://tests/performance/test_perf_broadphase.gd" type="Script" id=1] + +[node name="Test" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Objects" type="Node2D" parent="."] +position = Vector2( 512, 300 ) diff --git a/2d/physics_tests/tests/performance/test_perf_contacts.gd b/2d/physics_tests/tests/performance/test_perf_contacts.gd new file mode 100644 index 00000000..23c50797 --- /dev/null +++ b/2d/physics_tests/tests/performance/test_perf_contacts.gd @@ -0,0 +1,161 @@ +extends Test + + +const OPTION_TYPE_ALL = "Shape type/All" +const OPTION_TYPE_RECTANGLE = "Shape type/Rectangle" +const OPTION_TYPE_SPHERE = "Shape type/Sphere" +const OPTION_TYPE_CAPSULE = "Shape type/Capsule" +const OPTION_TYPE_CONVEX_POLYGON = "Shape type/Convex Polygon" +const OPTION_TYPE_CONCAVE_POLYGON = "Shape type/Concave Polygon" +export(Array) var spawns = Array() + +export(int) var spawn_count = 100 +export(int, 1, 10) var spawn_multiplier = 5 + +var _object_templates = [] + + +func _ready(): + yield(start_timer(0.5), "timeout") + if is_timer_canceled(): + return + + while $DynamicShapes.get_child_count(): + var type_node = $DynamicShapes.get_child(0) + type_node.position = Vector2.ZERO + _object_templates.push_back(type_node) + $DynamicShapes.remove_child(type_node) + + $Options.add_menu_item(OPTION_TYPE_ALL) + $Options.add_menu_item(OPTION_TYPE_RECTANGLE) + $Options.add_menu_item(OPTION_TYPE_SPHERE) + $Options.add_menu_item(OPTION_TYPE_CAPSULE) + $Options.add_menu_item(OPTION_TYPE_CONVEX_POLYGON) + $Options.add_menu_item(OPTION_TYPE_CONCAVE_POLYGON) + $Options.connect("option_selected", self, "_on_option_selected") + + _start_all_types() + + +func _exit_tree(): + for object_template in _object_templates: + object_template.free() + + +func _on_option_selected(option): + cancel_timer() + + _despawn_objects() + + match option: + OPTION_TYPE_ALL: + _start_all_types() + OPTION_TYPE_RECTANGLE: + _start_type(_find_type_index("Rectangle")) + OPTION_TYPE_SPHERE: + _start_type(_find_type_index("Sphere")) + OPTION_TYPE_CAPSULE: + _start_type(_find_type_index("Capsule")) + OPTION_TYPE_CONVEX_POLYGON: + _start_type(_find_type_index("ConvexPolygon")) + OPTION_TYPE_CONCAVE_POLYGON: + _start_type(_find_type_index("ConcavePolygon")) + + +func _find_type_index(type_name): + for type_index in _object_templates.size(): + var type_node = _object_templates[type_index] + if type_node.name.find(type_name) > -1: + return type_index + + Log.print_error("Invalid shape type: " + type_name) + return -1 + + +func _start_type(type_index): + if type_index < 0: + return + if type_index >= _object_templates.size(): + return + + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + _spawn_objects(type_index) + + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + _activate_objects() + + yield(start_timer(5.0), "timeout") + if is_timer_canceled(): + return + + _despawn_objects() + + Log.print_log("* Done.") + + +func _start_all_types(): + for type_index in _object_templates.size(): + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + _spawn_objects(type_index) + + yield(start_timer(1.0), "timeout") + if is_timer_canceled(): + return + + _activate_objects() + + yield(start_timer(5.0), "timeout") + if is_timer_canceled(): + return + + _despawn_objects() + + Log.print_log("* Done.") + + +func _spawn_objects(type_index): + var template_node = _object_templates[type_index] + for spawn in spawns: + var spawn_parent = get_node(spawn) + + Log.print_log("* Spawning: " + template_node.name) + + for _index in range(spawn_multiplier): + for _node_index in spawn_count / spawn_multiplier: + var node = template_node.duplicate() as Node2D + spawn_parent.add_child(node) + + +func _activate_objects(): + var spawn_parent = $SpawnTarget1 + + Log.print_log("* Activating") + + for node_index in spawn_parent.get_child_count(): + var node = spawn_parent.get_child(node_index) as RigidBody2D + node.set_sleeping(false) + + +func _despawn_objects(): + for spawn in spawns: + var spawn_parent = get_node(spawn) + + if spawn_parent.get_child_count() == 0: + return + + Log.print_log("* Despawning") + + while spawn_parent.get_child_count(): + var node_index = spawn_parent.get_child_count() - 1 + var node = spawn_parent.get_child(node_index) + spawn_parent.remove_child(node) + node.queue_free() diff --git a/2d/physics_tests/tests/performance/test_perf_contacts.tscn b/2d/physics_tests/tests/performance/test_perf_contacts.tscn new file mode 100644 index 00000000..de40af28 --- /dev/null +++ b/2d/physics_tests/tests/performance/test_perf_contacts.tscn @@ -0,0 +1,70 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://tests/static_scene.tscn" type="PackedScene" id=1] +[ext_resource path="res://tests/performance/test_perf_contacts.gd" type="Script" id=2] +[ext_resource path="res://assets/godot-head.png" type="Texture" id=3] +[ext_resource path="res://tests/test_options.tscn" type="PackedScene" id=4] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 20, 30 ) + +[sub_resource type="CircleShape2D" id=2] +radius = 30.0 + +[sub_resource type="CapsuleShape2D" id=3] +radius = 20.0 +height = 30.0 + +[node name="Test" type="Node2D"] +script = ExtResource( 2 ) +spawns = [ NodePath("SpawnTarget1") ] + +[node name="Options" parent="." instance=ExtResource( 4 )] + +[node name="SpawnTarget1" type="Node2D" parent="."] +position = Vector2( 512, 400 ) + +[node name="StaticScene" parent="." instance=ExtResource( 1 )] +position = Vector2( 0, 125.017 ) + +[node name="DynamicShapes" type="Node2D" parent="."] + +[node name="RigidBodyRectangle" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 0, 1024 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyRectangle"] +shape = SubResource( 1 ) + +[node name="RigidBodySphere" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 100, 1024 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodySphere"] +shape = SubResource( 2 ) + +[node name="RigidBodyCapsule" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 200, 1024 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DynamicShapes/RigidBodyCapsule"] +shape = SubResource( 3 ) + +[node name="RigidBodyConvexPolygon" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 300, 1024 ) + +[node name="GodotIcon" type="Sprite" parent="DynamicShapes/RigidBodyConvexPolygon"] +scale = Vector2( 0.5, 0.5 ) +texture = ExtResource( 3 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="DynamicShapes/RigidBodyConvexPolygon"] +scale = Vector2( 0.5, 0.5 ) +polygon = PoolVector2Array( 10.7, -54.5, 28.3596, -49.4067, 47.6282, -34.3806, 57.9717, -20.9447, 50.9869, 35.2694, 38.8, 47.5, 15.9852, 54.3613, -14.9507, 54.1845, -36.5, 48.1, -50.4828, 36.33, -58.0115, -20.515, -46.9473, -34.7342, -26.0876, -50.1138, -11.4152, -54.5332 ) + +[node name="RigidBodyConcavePolygon" type="RigidBody2D" parent="DynamicShapes"] +position = Vector2( 400, 1024 ) + +[node name="GodotIcon" type="Sprite" parent="DynamicShapes/RigidBodyConcavePolygon"] +scale = Vector2( 0.5, 0.5 ) +texture = ExtResource( 3 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="DynamicShapes/RigidBodyConcavePolygon"] +scale = Vector2( 0.5, 0.5 ) +polygon = PoolVector2Array( -5.93512, -43.2195, 6.44476, -42.9695, 11.127, -54.3941, 26.9528, -49.4309, 26.2037, -36.508, 37.5346, -28.1737, 47.6282, -34.3806, 58.0427, -20.9631, 51.113, -10.2876, 50.9869, 35.2694, 38.8, 47.5, 15.9852, 54.3613, -14.9507, 54.1845, -36.5, 48.1, -50.4828, 36.33, -51.3668, -9.98545, -57.8889, -20.5885, -46.9473, -34.7342, -37.4014, -28.547, -26.0876, -37.0323, -26.9862, -49.15, -11.4152, -54.5332 ) diff --git a/2d/physics_tests/tests/static_scene.tscn b/2d/physics_tests/tests/static_scene.tscn new file mode 100644 index 00000000..0fdb2895 --- /dev/null +++ b/2d/physics_tests/tests/static_scene.tscn @@ -0,0 +1,10 @@ +[gd_scene format=2] + +[node name="StaticScene" type="Node2D"] + +[node name="StaticBodyPolygon" type="StaticBody2D" parent="."] +position = Vector2( -7.85718, 399.596 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBodyPolygon"] +build_mode = 1 +polygon = PoolVector2Array( 16.3331, -129.432, 154.006, -20.0078, 292.354, 30.3943, 447.054, 33.9161, 584.899, -14.7955, 751.156, -15.5179, 894.098, -65.4518, 1000.73, -209.127, 1037.77, -398.823, 1029.92, 253.327, 6.2309, 261.185, 7.35339, -398.823 ) diff --git a/2d/physics_tests/tests/static_scene_flat.tscn b/2d/physics_tests/tests/static_scene_flat.tscn new file mode 100644 index 00000000..f07a3f8c --- /dev/null +++ b/2d/physics_tests/tests/static_scene_flat.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 512, 50 ) + +[node name="StaticSceneFlat" type="Node2D"] + +[node name="StaticBodyPolygon" type="StaticBody2D" parent="."] +position = Vector2( 512, 550 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBodyPolygon"] +shape = SubResource( 1 ) diff --git a/2d/physics_tests/tests/test_options.tscn b/2d/physics_tests/tests/test_options.tscn new file mode 100644 index 00000000..dcceccdb --- /dev/null +++ b/2d/physics_tests/tests/test_options.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://utils/option_menu.gd" type="Script" id=1] + +[node name="Options" type="MenuButton"] +margin_left = 10.0 +margin_top = 106.719 +margin_right = 125.0 +margin_bottom = 126.719 +text = "TEST OPTIONS" +flat = false +align = 0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/2d/physics_tests/tests_menu.gd b/2d/physics_tests/tests_menu.gd new file mode 100644 index 00000000..bb3cad61 --- /dev/null +++ b/2d/physics_tests/tests_menu.gd @@ -0,0 +1,54 @@ +extends OptionMenu + + +class TestData: + var id + var scene_path + + +var _test_list = [] + +var _current_test = null +var _current_test_scene = null + + +func _ready(): + connect("option_selected", self, "_on_option_selected") + + +func _process(_delta): + if Input.is_action_just_pressed("restart_test"): + if _current_test: + _start_test(_current_test) + + +func add_test(id, scene_path): + var test_data = TestData.new() + test_data.id = id + test_data.scene_path = scene_path + _test_list.append(test_data) + + add_menu_item(id) + + +func _on_option_selected(item_path): + for test in _test_list: + if test.id == item_path: + _start_test(test) + + +func _start_test(test): + _current_test = test + + if _current_test_scene: + _current_test_scene.queue_free() + _current_test_scene = null + + Log.print_log("*** STARTING TEST: " + test.id) + var scene = load(test.scene_path) + _current_test_scene = scene.instance() + get_tree().root.add_child(_current_test_scene) + get_tree().root.move_child(_current_test_scene, 0) + + var label_test = get_node("../LabelTest") + label_test.test_name = test.id diff --git a/2d/physics_tests/utils/container_log.gd b/2d/physics_tests/utils/container_log.gd new file mode 100644 index 00000000..2baff145 --- /dev/null +++ b/2d/physics_tests/utils/container_log.gd @@ -0,0 +1,41 @@ +extends Control + + +const MAX_ENTRIES = 100 + +var _entry_template + + +func _enter_tree(): + Log.connect("entry_logged", self, "_on_log_entry") + + _entry_template = get_child(0) as Label + remove_child(_entry_template) + + +func _exit_tree(): + _entry_template.free() + + +func clear(): + while get_child_count(): + var entry = get_child(get_child_count() - 1) + remove_child(entry) + entry.queue_free() + + +func _on_log_entry(message, type): + var new_entry = _entry_template.duplicate() as Label + + new_entry.set_text(message) + if type == Log.LogType.ERROR: + new_entry.modulate = Color.red + else: + new_entry.modulate = Color.white + + if get_child_count() >= MAX_ENTRIES: + var first_entry = get_child(0) as Label + remove_child(first_entry) + first_entry.queue_free() + + add_child(new_entry) diff --git a/2d/physics_tests/utils/label_engine.gd b/2d/physics_tests/utils/label_engine.gd new file mode 100644 index 00000000..65fd7035 --- /dev/null +++ b/2d/physics_tests/utils/label_engine.gd @@ -0,0 +1,12 @@ +extends Label + + +func _process(_delta): + var engine_name = "" + match System.get_physics_engine(): + System.PhysicsEngine.GODOT_PHYSICS: + engine_name = "Godot Physics" + System.PhysicsEngine.OTHER: + var engine_setting = ProjectSettings.get_setting("physics/2d/physics_engine") + engine_name = "Other (%s)" % engine_setting + set_text("Physics engine: %s" % engine_name) diff --git a/2d/physics_tests/utils/label_fps.gd b/2d/physics_tests/utils/label_fps.gd new file mode 100644 index 00000000..6f2c6f30 --- /dev/null +++ b/2d/physics_tests/utils/label_fps.gd @@ -0,0 +1,5 @@ +extends Label + + +func _process(_delta): + set_text("FPS: %d" % Engine.get_frames_per_second()) diff --git a/2d/physics_tests/utils/label_test.gd b/2d/physics_tests/utils/label_test.gd new file mode 100644 index 00000000..d5de3d49 --- /dev/null +++ b/2d/physics_tests/utils/label_test.gd @@ -0,0 +1,13 @@ +extends Label + + +var test_name setget _set_test_name + + +func _ready(): + set_text("Select a test from the menu to start it") + + +func _set_test_name(value): + test_name = value + set_text("Test: %s" % test_name) diff --git a/2d/physics_tests/utils/label_version.gd b/2d/physics_tests/utils/label_version.gd new file mode 100644 index 00000000..b2185fb9 --- /dev/null +++ b/2d/physics_tests/utils/label_version.gd @@ -0,0 +1,5 @@ +extends Label + + +func _process(_delta): + set_text("Godot Version: %s" % Engine.get_version_info().string) diff --git a/2d/physics_tests/utils/option_menu.gd b/2d/physics_tests/utils/option_menu.gd new file mode 100644 index 00000000..a39c6c81 --- /dev/null +++ b/2d/physics_tests/utils/option_menu.gd @@ -0,0 +1,47 @@ +class_name OptionMenu +extends MenuButton + + +signal option_selected(item_path) + + +func add_menu_item(item_path): + var path_elements = item_path.split("/", false) + var path_element_count = path_elements.size() + assert(path_element_count > 0) + + var path = "" + var popup = get_popup() + for element_index in path_element_count - 1: + var popup_label = path_elements[element_index] + path += popup_label + "/" + popup = _add_popup(popup, path, popup_label) + + _add_item(popup, path_elements[path_element_count - 1]) + + +func _add_item(parent_popup, label): + parent_popup.add_item(label) + + +func _add_popup(parent_popup, path, label): + if parent_popup.has_node(label): + var popup_node = parent_popup.get_node(label) + var popup_menu = popup_node as PopupMenu + assert(popup_menu) + return popup_menu + + var popup_menu = PopupMenu.new() + popup_menu.name = label + + parent_popup.add_child(popup_menu) + parent_popup.add_submenu_item(label, label) + + popup_menu.connect("index_pressed", self, "_on_item_pressed", [popup_menu, path]) + + return popup_menu + + +func _on_item_pressed(item_index, popup_menu, path): + var item_path = path + popup_menu.get_item_text(item_index) + emit_signal("option_selected", item_path) diff --git a/2d/physics_tests/utils/scroll_log.gd b/2d/physics_tests/utils/scroll_log.gd new file mode 100644 index 00000000..d362a8f2 --- /dev/null +++ b/2d/physics_tests/utils/scroll_log.gd @@ -0,0 +1,14 @@ +extends ScrollContainer + + +export(bool) var auto_scroll = false setget set_auto_scroll + + +func _process(_delta): + if auto_scroll: + var scrollbar = get_v_scrollbar() + scrollbar.value = scrollbar.max_value + + +func set_auto_scroll(value): + auto_scroll = value diff --git a/2d/physics_tests/utils/system.gd b/2d/physics_tests/utils/system.gd new file mode 100644 index 00000000..9e78cf19 --- /dev/null +++ b/2d/physics_tests/utils/system.gd @@ -0,0 +1,50 @@ +extends Node + + +enum PhysicsEngine { + GODOT_PHYSICS, + OTHER, +} + +var _engine = PhysicsEngine.OTHER + + +func _enter_tree(): + get_tree().debug_collisions_hint = true + + var engine_string = ProjectSettings.get_setting("physics/2d/physics_engine") + match engine_string: + "DEFAULT": + _engine = PhysicsEngine.GODOT_PHYSICS + "GodotPhysics": + _engine = PhysicsEngine.GODOT_PHYSICS + _: + _engine = PhysicsEngine.OTHER + + +func _process(_delta): + if Input.is_action_just_pressed("toggle_full_screen"): + OS.window_fullscreen = not OS.window_fullscreen + + if Input.is_action_just_pressed("toggle_debug_collision"): + var debug_collision_enabled = not _is_debug_collision_enabled() + _set_debug_collision_enabled(debug_collision_enabled) + if debug_collision_enabled: + Log.print_log("Debug Collision ON") + else: + Log.print_log("Debug Collision OFF") + + if Input.is_action_just_pressed("exit"): + get_tree().quit() + + +func get_physics_engine(): + return _engine + + +func _set_debug_collision_enabled(enabled): + get_tree().debug_collisions_hint = enabled + + +func _is_debug_collision_enabled(): + return get_tree().debug_collisions_hint diff --git a/2d/physics_tests/utils/system_log.gd b/2d/physics_tests/utils/system_log.gd new file mode 100644 index 00000000..dc094d25 --- /dev/null +++ b/2d/physics_tests/utils/system_log.gd @@ -0,0 +1,20 @@ +extends Node + + +enum LogType { + LOG, + ERROR, +} + +signal entry_logged(message, type) + + +func print_log(message): + print(message) + emit_signal("entry_logged", message, LogType.LOG) + + +func print_error(message): + push_error(message) + printerr(message) + emit_signal("entry_logged", message, LogType.ERROR) diff --git a/3d/physics_tests/tests/functional/test_raycasting.gd b/3d/physics_tests/tests/functional/test_raycasting.gd new file mode 100644 index 00000000..e69de29b