Skip to content

Commit

Permalink
2D Physics Tests, fixed "one-way collision script error"
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex2782 committed Sep 23, 2023
1 parent 1113baf commit 0a22793
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 96 deletions.
4 changes: 2 additions & 2 deletions 2d/physics_tests/project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ config_version=5
[application]

config/name="2D Physics Tests"
config/tags=PackedStringArray("2d", "demo", "official", "physics")
run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.0")
config/features=PackedStringArray("4.1")
config/icon="res://icon.webp"
config/tags=PackedStringArray("2d", "demo", "official", "physics")

[autoload]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ func _physics_process(delta):
if not Engine.is_editor_hint():
if _moving_body and not _contact_detected:
if _use_character_body:
var collision = _moving_body.move_and_collide(_body_velocity, false)
var collision = _moving_body.move_and_collide(_body_velocity * delta, false)
if collision:
var colliding_body = collision.get_collider()
await _on_contact_detected(colliding_body)
Expand Down
143 changes: 50 additions & 93 deletions 2d/physics_tests/tests/functional/test_one_way_collision.tscn
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[gd_scene load_steps=9 format=3 uid="uid://c85275leeliuq"]

[ext_resource type="Script" path="res://tests/functional/test_one_way_collision.gd" id="1"]
[ext_resource type="Texture2D" uid="uid://cpps5r8o4dfwo" path="res://icon.webp" id="2"]
[ext_resource type="Texture2D" uid="uid://brwp8bimc75uu" path="res://icon.webp" id="2"]
[ext_resource type="PackedScene" uid="uid://blh3twy74kbkv" path="res://tests/test_options.tscn" id="3"]
[ext_resource type="Script" path="res://utils/label_slider_value.gd" id="4"]
[ext_resource type="Script" path="res://utils/slider.gd" id="5"]
Expand All @@ -16,131 +16,102 @@ size = Vector2(128, 64)
size = Vector2(64, 64)

[node name="Test" type="Node2D"]
script = ExtResource( "1" )
script = ExtResource("1")

[node name="LabelTestType" type="Label" parent="."]
offset_left = 14.0
offset_top = 79.0
offset_right = 145.0
offset_bottom = 93.0
text = "Testing: "
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Options" parent="." instance=ExtResource( "3" )]
[node name="Options" parent="." instance=ExtResource("3")]

[node name="Controls" type="VBoxContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 25.3619
offset_top = 416.765
offset_right = 265.362
offset_bottom = 484.765
offset_left = 25.0
offset_top = 402.0
offset_right = 425.0
offset_bottom = 500.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 10
__meta__ = {
"_edit_use_anchors_": false
}

[node name="PlatformSize" type="HBoxContainer" parent="Controls"]
offset_right = 452.0
offset_bottom = 26.0
layout_mode = 2
theme_override_constants/separation = 20
alignment = 2
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Label" type="Label" parent="Controls/PlatformSize"]
offset_left = 12.0
offset_right = 112.0
offset_bottom = 26.0
custom_minimum_size = Vector2(120, 2.08165e-12)
layout_mode = 2
size_flags_horizontal = 0
text = "Platform size"

[node name="HSlider" type="HSlider" parent="Controls/PlatformSize"]
offset_left = 132.0
offset_right = 332.0
offset_bottom = 16.0
rect_min_size = Vector2(200, 0)
custom_minimum_size = Vector2(200, 2.08165e-12)
layout_mode = 2
min_value = 64.0
max_value = 256.0
value = 64.0
script = ExtResource( "5" )
script = ExtResource("5")

[node name="LabelValue" type="Label" parent="Controls/PlatformSize"]
offset_left = 352.0
offset_right = 452.0
offset_bottom = 26.0
rect_min_size = Vector2(100, 0)
custom_minimum_size = Vector2(60, 2.08165e-12)
layout_mode = 2
text = "64.0"
script = ExtResource( "4" )
script = ExtResource("4")

[node name="PlatformAngle" type="HBoxContainer" parent="Controls"]
offset_top = 36.0
offset_right = 452.0
offset_bottom = 62.0
layout_mode = 2
theme_override_constants/separation = 20
alignment = 2
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Label" type="Label" parent="Controls/PlatformAngle"]
offset_right = 112.0
offset_bottom = 26.0
custom_minimum_size = Vector2(120, 2.08165e-12)
layout_mode = 2
text = "Platform angle"

[node name="HSlider" type="HSlider" parent="Controls/PlatformAngle"]
offset_left = 132.0
offset_right = 332.0
offset_bottom = 16.0
rect_min_size = Vector2(200, 0)
custom_minimum_size = Vector2(200, 2.08165e-12)
layout_mode = 2
max_value = 360.0
script = ExtResource( "5" )
script = ExtResource("5")
snap_step = 5.0

[node name="LabelValue" type="Label" parent="Controls/PlatformAngle"]
offset_left = 352.0
offset_right = 452.0
offset_bottom = 26.0
rect_min_size = Vector2(100, 0)
custom_minimum_size = Vector2(60, 2.08165e-12)
layout_mode = 2
text = "0.0"
script = ExtResource( "4" )
script = ExtResource("4")

[node name="BodyAngle" type="HBoxContainer" parent="Controls"]
offset_top = 72.0
offset_right = 452.0
offset_bottom = 98.0
layout_mode = 2
theme_override_constants/separation = 20
alignment = 2
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Label" type="Label" parent="Controls/BodyAngle"]
offset_left = 27.0
offset_right = 112.0
offset_bottom = 26.0
custom_minimum_size = Vector2(120, 2.08165e-12)
layout_mode = 2
text = "Body angle"

[node name="HSlider" type="HSlider" parent="Controls/BodyAngle"]
offset_left = 132.0
offset_right = 332.0
offset_bottom = 16.0
rect_min_size = Vector2(200, 0)
custom_minimum_size = Vector2(200, 2.08165e-12)
layout_mode = 2
max_value = 360.0
script = ExtResource( "5" )
script = ExtResource("5")
snap_step = 5.0

[node name="LabelValue" type="Label" parent="Controls/BodyAngle"]
offset_left = 352.0
offset_right = 452.0
offset_bottom = 26.0
rect_min_size = Vector2(100, 0)
custom_minimum_size = Vector2(60, 2.08165e-12)
layout_mode = 2
text = "0.0"
script = ExtResource( "4" )
script = ExtResource("4")

[node name="LabelResultTitle" type="Label" parent="."]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
Expand All @@ -150,13 +121,9 @@ offset_top = 251.131
offset_right = 88.1273
offset_bottom = 265.131
text = "RESULT: "
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}

[node name="LabelResult" type="Label" parent="."]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
Expand All @@ -166,13 +133,9 @@ offset_top = 266.131
offset_right = 88.1273
offset_bottom = 280.131
text = "..."
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}

[node name="LabelRestart" type="Label" parent="."]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
Expand All @@ -182,11 +145,6 @@ offset_top = 304.841
offset_right = 139.127
offset_bottom = 318.841
text = "SPACE - RESTART"
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Timer" type="Timer" parent="."]
wait_time = 5.0
Expand All @@ -196,29 +154,28 @@ one_shot = true
position = Vector2(512, 300)

[node name="CollisionShape2D" type="CollisionShape2D" parent="TargetArea2D"]
shape = SubResource( "CircleShape2D_e5nt1" )
shape = SubResource("CircleShape2D_e5nt1")

[node name="OneWayStaticBody2D" type="StaticBody2D" parent="."]
position = Vector2(512, 300)

[node name="CollisionShape2D" type="CollisionShape2D" parent="OneWayStaticBody2D"]
shape = SubResource( "2" )
shape = SubResource("2")
one_way_collision = true

[node name="RigidDynamicBody2D" type="RigidDynamicBody2D" parent="."]
[node name="RigidBody2D" type="RigidBody2D" parent="."]
position = Vector2(300, 300)
collision_mask = 2147483649
gravity_scale = 0.0
contacts_reported = 1
contact_monitor = true

[node name="Sprite" type="Sprite2D" parent="RigidDynamicBody2D"]
[node name="Sprite" type="Sprite2D" parent="RigidBody2D"]
self_modulate = Color(1, 1, 1, 0.501961)
scale = Vector2(0.5, 0.5)
texture = ExtResource( "2" )
texture = ExtResource("2")

[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidDynamicBody2D"]
shape = SubResource( "3" )
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
shape = SubResource("3")

[node name="CharacterBody2D" type="CharacterBody2D" parent="."]
position = Vector2(300, 300)
Expand All @@ -227,10 +184,10 @@ collision_mask = 2147483649
[node name="Sprite" type="Sprite2D" parent="CharacterBody2D"]
self_modulate = Color(1, 1, 1, 0.501961)
scale = Vector2(0.5, 0.5)
texture = ExtResource( "2" )
texture = ExtResource("2")

[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
shape = SubResource( "3" )
shape = SubResource("3")

[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"]
Expand Down

0 comments on commit 0a22793

Please sign in to comment.