mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2025-12-16 13:30:07 +01:00
Update 2D physics platformer for 4.0
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
# Physics Platformer
|
||||
|
||||
This demo uses [`RigidDynamicBody2D`](https://docs.godotengine.org/en/latest/classes/class_rigiddynamicbody2d.html)
|
||||
This demo uses [`RigidBody2D`](https://docs.godotengine.org/en/latest/classes/class_rigidbody2d.html)
|
||||
for the player and enemies.
|
||||
These character controllers are more powerful than
|
||||
[`KinematicBody2D`](https://docs.godotengine.org/en/latest/classes/class_kinematicbody2d.html),
|
||||
[`CharacterBody2D`](https://docs.godotengine.org/en/latest/classes/class_characterbody2d.html),
|
||||
but can be more difficult to handle, as they require
|
||||
manual modification of the RigidDynamicBody velocity.
|
||||
|
||||
Language: GDScript
|
||||
|
||||
Renderer: GLES 2
|
||||
Renderer: Forward Plus
|
||||
|
||||
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/119
|
||||
|
||||
@@ -17,7 +17,7 @@ Check out this demo on the asset library: https://godotengine.org/asset-library/
|
||||
|
||||
The player and enemies use dynamic character
|
||||
controllers for movement, made with
|
||||
[`RigidDynamicBody2D`](https://docs.godotengine.org/en/latest/classes/class_rigiddynamicbody2d.html),
|
||||
[`RigidBody2D`](https://docs.godotengine.org/en/latest/classes/class_rigidbody2d.html),
|
||||
which means that they can perfectly interact with physics
|
||||
(there is a see-saw, and you can even ride enemies).
|
||||
Because of this, all movement must be done in sync with
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,349 +0,0 @@
|
||||
[gd_resource type="TileSet" load_steps=14 format=2]
|
||||
|
||||
[ext_resource path="res://tiles_demo.png" type="Texture2D" id=1]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
points = PackedVector2Array( -16, -12, 16, -12, 16, 16, -16, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
points = PackedVector2Array( -16, 16, -16, -12, 12, -12, 12, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
points = PackedVector2Array( -16, -16, 16, -16, 16, 16, -16, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||
points = PackedVector2Array( -16, -28, 16, 4, 16, 32, -16, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
points = PackedVector2Array( -16, 16, -16, -16, 12, -16, 12, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
points = PackedVector2Array( -16, -12, 16, -12, 16, 12, -16, 12 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
points = PackedVector2Array( -16, -12, 12, -12, 12, 12, -16, 12 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||
points = PackedVector2Array( -16, 16, -16, -16, 12, -16, 12, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=9]
|
||||
points = PackedVector2Array( -32, 16, -32, -16, -4, -16, -4, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=10]
|
||||
points = PackedVector2Array( -16, 16, -16, -16, 12, -16, 16, -12, 16, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=11]
|
||||
points = PackedVector2Array( -16, 16, -16, -12, 16, -12, 16, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=12]
|
||||
points = PackedVector2Array( -16, 16, -16, -12, 16, -12, 16, 16 )
|
||||
|
||||
[resource]
|
||||
0/name = "floor"
|
||||
0/texture = ExtResource( 1 )
|
||||
0/tex_offset = Vector2( 0, 0 )
|
||||
0/modulate = Color( 1, 1, 1, 1 )
|
||||
0/region = Rect2( 0, 0, 32, 32 )
|
||||
0/tile_mode = 0
|
||||
0/occluder_offset = Vector2( 16, 16 )
|
||||
0/navigation_offset = Vector2( 16, 16 )
|
||||
0/shape_offset = Vector2( 16, 16 )
|
||||
0/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
0/shape = SubResource( 1 )
|
||||
0/shape_one_way = false
|
||||
0/shape_one_way_margin = 1.0
|
||||
0/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 1 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
0/z_index = 0
|
||||
1/name = "edge"
|
||||
1/texture = ExtResource( 1 )
|
||||
1/tex_offset = Vector2( 0, 0 )
|
||||
1/modulate = Color( 1, 1, 1, 1 )
|
||||
1/region = Rect2( 32, 0, 32, 32 )
|
||||
1/tile_mode = 0
|
||||
1/occluder_offset = Vector2( 16, 16 )
|
||||
1/navigation_offset = Vector2( 16, 16 )
|
||||
1/shape_offset = Vector2( 16, 16 )
|
||||
1/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
1/shape = SubResource( 2 )
|
||||
1/shape_one_way = false
|
||||
1/shape_one_way_margin = 1.0
|
||||
1/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 2 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
1/z_index = 0
|
||||
2/name = "wall"
|
||||
2/texture = ExtResource( 1 )
|
||||
2/tex_offset = Vector2( 0, 0 )
|
||||
2/modulate = Color( 1, 1, 1, 1 )
|
||||
2/region = Rect2( 32, 32, 32, 32 )
|
||||
2/tile_mode = 0
|
||||
2/occluder_offset = Vector2( 16, 16 )
|
||||
2/navigation_offset = Vector2( 16, 16 )
|
||||
2/shape_offset = Vector2( 16, 16 )
|
||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
2/shape = SubResource( 8 )
|
||||
2/shape_one_way = false
|
||||
2/shape_one_way_margin = 1.0
|
||||
2/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 8 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
2/z_index = 0
|
||||
3/name = "wall_deco"
|
||||
3/texture = ExtResource( 1 )
|
||||
3/tex_offset = Vector2( 0, 0 )
|
||||
3/modulate = Color( 1, 1, 1, 1 )
|
||||
3/region = Rect2( 160, 64, 64, 32 )
|
||||
3/tile_mode = 0
|
||||
3/occluder_offset = Vector2( 32, 16 )
|
||||
3/navigation_offset = Vector2( 32, 16 )
|
||||
3/shape_offset = Vector2( 32, 16 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 32, 16 )
|
||||
3/shape = SubResource( 9 )
|
||||
3/shape_one_way = false
|
||||
3/shape_one_way_margin = 1.0
|
||||
3/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 9 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 32, 16 )
|
||||
} ]
|
||||
3/z_index = 0
|
||||
4/name = "corner"
|
||||
4/texture = ExtResource( 1 )
|
||||
4/tex_offset = Vector2( 0, 0 )
|
||||
4/modulate = Color( 1, 1, 1, 1 )
|
||||
4/region = Rect2( 32, 64, 32, 32 )
|
||||
4/tile_mode = 0
|
||||
4/occluder_offset = Vector2( 16, 16 )
|
||||
4/navigation_offset = Vector2( 16, 16 )
|
||||
4/shape_offset = Vector2( 16, 16 )
|
||||
4/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
4/shape = SubResource( 10 )
|
||||
4/shape_one_way = false
|
||||
4/shape_one_way_margin = 1.0
|
||||
4/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 10 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
4/z_index = 0
|
||||
5/name = "flowers"
|
||||
5/texture = ExtResource( 1 )
|
||||
5/tex_offset = Vector2( 0, 0 )
|
||||
5/modulate = Color( 1, 1, 1, 1 )
|
||||
5/region = Rect2( 96, 96, 32, 32 )
|
||||
5/tile_mode = 0
|
||||
5/occluder_offset = Vector2( 16, 16 )
|
||||
5/navigation_offset = Vector2( 16, 16 )
|
||||
5/shape_offset = Vector2( 16, 16 )
|
||||
5/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
5/shape = SubResource( 11 )
|
||||
5/shape_one_way = false
|
||||
5/shape_one_way_margin = 1.0
|
||||
5/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 11 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
5/z_index = 0
|
||||
6/name = "tree_base"
|
||||
6/texture = ExtResource( 1 )
|
||||
6/tex_offset = Vector2( 0, 0 )
|
||||
6/modulate = Color( 1, 1, 1, 1 )
|
||||
6/region = Rect2( 128, 96, 32, 32 )
|
||||
6/tile_mode = 0
|
||||
6/occluder_offset = Vector2( 16, 16 )
|
||||
6/navigation_offset = Vector2( 16, 16 )
|
||||
6/shape_offset = Vector2( 16, 16 )
|
||||
6/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
6/shape = SubResource( 12 )
|
||||
6/shape_one_way = false
|
||||
6/shape_one_way_margin = 1.0
|
||||
6/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 12 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
6/z_index = 0
|
||||
7/name = "tree_mid"
|
||||
7/texture = ExtResource( 1 )
|
||||
7/tex_offset = Vector2( 0, 0 )
|
||||
7/modulate = Color( 1, 1, 1, 1 )
|
||||
7/region = Rect2( 128, 64, 32, 32 )
|
||||
7/tile_mode = 0
|
||||
7/occluder_offset = Vector2( 16, 16 )
|
||||
7/navigation_offset = Vector2( 16, 16 )
|
||||
7/shape_offset = Vector2( 0, 0 )
|
||||
7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
7/shape_one_way = false
|
||||
7/shape_one_way_margin = 0.0
|
||||
7/shapes = [ ]
|
||||
7/z_index = 0
|
||||
8/name = "tree_mid 2"
|
||||
8/texture = ExtResource( 1 )
|
||||
8/tex_offset = Vector2( 0, 0 )
|
||||
8/modulate = Color( 1, 1, 1, 1 )
|
||||
8/region = Rect2( 128, 32, 32, 32 )
|
||||
8/tile_mode = 0
|
||||
8/occluder_offset = Vector2( 16, 16 )
|
||||
8/navigation_offset = Vector2( 16, 16 )
|
||||
8/shape_offset = Vector2( 0, 0 )
|
||||
8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
8/shape_one_way = false
|
||||
8/shape_one_way_margin = 0.0
|
||||
8/shapes = [ ]
|
||||
8/z_index = 0
|
||||
9/name = "tree_top"
|
||||
9/texture = ExtResource( 1 )
|
||||
9/tex_offset = Vector2( 0, 0 )
|
||||
9/modulate = Color( 1, 1, 1, 1 )
|
||||
9/region = Rect2( 128, 0, 32, 32 )
|
||||
9/tile_mode = 0
|
||||
9/occluder_offset = Vector2( 16, 16 )
|
||||
9/navigation_offset = Vector2( 16, 16 )
|
||||
9/shape_offset = Vector2( 0, 0 )
|
||||
9/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
9/shape_one_way = false
|
||||
9/shape_one_way_margin = 0.0
|
||||
9/shapes = [ ]
|
||||
9/z_index = 0
|
||||
10/name = "solid"
|
||||
10/texture = ExtResource( 1 )
|
||||
10/tex_offset = Vector2( 0, 0 )
|
||||
10/modulate = Color( 1, 1, 1, 1 )
|
||||
10/region = Rect2( 0, 32, 32, 32 )
|
||||
10/tile_mode = 0
|
||||
10/occluder_offset = Vector2( 16, 16 )
|
||||
10/navigation_offset = Vector2( 16, 16 )
|
||||
10/shape_offset = Vector2( 0, 0 )
|
||||
10/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
10/shape_one_way = false
|
||||
10/shape_one_way_margin = 0.0
|
||||
10/shapes = [ ]
|
||||
10/z_index = 0
|
||||
11/name = "ceiling"
|
||||
11/texture = ExtResource( 1 )
|
||||
11/tex_offset = Vector2( 0, 0 )
|
||||
11/modulate = Color( 1, 1, 1, 1 )
|
||||
11/region = Rect2( 192, 32, 32, 32 )
|
||||
11/tile_mode = 0
|
||||
11/occluder_offset = Vector2( 16, 16 )
|
||||
11/navigation_offset = Vector2( 16, 16 )
|
||||
11/shape_offset = Vector2( 16, 16 )
|
||||
11/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
11/shape = SubResource( 3 )
|
||||
11/shape_one_way = false
|
||||
11/shape_one_way_margin = 1.0
|
||||
11/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 3 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
11/z_index = 0
|
||||
12/name = "ramp"
|
||||
12/texture = ExtResource( 1 )
|
||||
12/tex_offset = Vector2( 0, 0 )
|
||||
12/modulate = Color( 1, 1, 1, 1 )
|
||||
12/region = Rect2( 64, 64, 32, 64 )
|
||||
12/tile_mode = 0
|
||||
12/occluder_offset = Vector2( 16, 32 )
|
||||
12/navigation_offset = Vector2( 16, 32 )
|
||||
12/shape_offset = Vector2( 16, 32 )
|
||||
12/shape_transform = Transform2D( 1, 0, 0, 1, 16, 32 )
|
||||
12/shape = SubResource( 4 )
|
||||
12/shape_one_way = false
|
||||
12/shape_one_way_margin = 1.0
|
||||
12/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 4 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 32 )
|
||||
} ]
|
||||
12/z_index = 0
|
||||
13/name = "ceiling2wall"
|
||||
13/texture = ExtResource( 1 )
|
||||
13/tex_offset = Vector2( 0, 0 )
|
||||
13/modulate = Color( 1, 1, 1, 1 )
|
||||
13/region = Rect2( 224, 32, 32, 32 )
|
||||
13/tile_mode = 0
|
||||
13/occluder_offset = Vector2( 16, 16 )
|
||||
13/navigation_offset = Vector2( 16, 16 )
|
||||
13/shape_offset = Vector2( 16, 16 )
|
||||
13/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
13/shape = SubResource( 5 )
|
||||
13/shape_one_way = false
|
||||
13/shape_one_way_margin = 1.0
|
||||
13/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 5 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
13/z_index = 0
|
||||
14/name = "platform_floor"
|
||||
14/texture = ExtResource( 1 )
|
||||
14/tex_offset = Vector2( 0, 0 )
|
||||
14/modulate = Color( 1, 1, 1, 1 )
|
||||
14/region = Rect2( 64, 0, 32, 32 )
|
||||
14/tile_mode = 0
|
||||
14/occluder_offset = Vector2( 16, 16 )
|
||||
14/navigation_offset = Vector2( 16, 16 )
|
||||
14/shape_offset = Vector2( 16, 16 )
|
||||
14/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
14/shape = SubResource( 6 )
|
||||
14/shape_one_way = false
|
||||
14/shape_one_way_margin = 1.0
|
||||
14/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 6 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
14/z_index = 0
|
||||
15/name = "platform_edge"
|
||||
15/texture = ExtResource( 1 )
|
||||
15/tex_offset = Vector2( 0, 0 )
|
||||
15/modulate = Color( 1, 1, 1, 1 )
|
||||
15/region = Rect2( 96, 0, 32, 32 )
|
||||
15/tile_mode = 0
|
||||
15/occluder_offset = Vector2( 16, 16 )
|
||||
15/navigation_offset = Vector2( 16, 16 )
|
||||
15/shape_offset = Vector2( 16, 16 )
|
||||
15/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
15/shape = SubResource( 7 )
|
||||
15/shape_one_way = false
|
||||
15/shape_one_way_margin = 1.0
|
||||
15/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 7 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
|
||||
} ]
|
||||
15/z_index = 0
|
||||
@@ -1,35 +0,0 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://background/plank.png" type="Texture2D" id=1]
|
||||
[ext_resource path="res://background/plankpin.png" type="Texture2D" id=2]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2(64, 4)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
extents = Vector2(8, 13.5)
|
||||
|
||||
[node name="Seesaw" type="Node2D"]
|
||||
|
||||
[node name="Plank" type="RigidDynamicBody2D" parent="."]
|
||||
mass = 5.10204
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Plank"]
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Plank"]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="Pin" type="PinJoint2D" parent="."]
|
||||
node_a = NodePath("../Plank")
|
||||
node_b = NodePath("../Pillar")
|
||||
|
||||
[node name="Pillar" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Pillar"]
|
||||
position = Vector2(0, 10)
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Pillar"]
|
||||
position = Vector2(0, 12.5)
|
||||
shape = SubResource( 2 )
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/plank.png-d70731fc82f225d8353819786c2ed28a.ct
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/plankpin.png-68d06cc4b9ab95f9d0142d1a4c768140
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/scroll_bg_cloud_1.png-19f55c25a7e1985c92542fa
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/scroll_bg_cloud_2.png-869806dcc546591f3d754e3
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/scroll_bg_cloud_3.png-831c6ed9fa8b4070081428a
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/scroll_bg_fg_1.png-20c90ebded5095c6863cdf6b1b
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/scroll_bg_fg_2.png-2b54decd69e8aff2caa33640a3
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/scroll_bg_sky.png-377ea542199b2e23d7a822ed940
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
35
2d/physics_platformer/background/seesaw.tscn
Normal file
35
2d/physics_platformer/background/seesaw.tscn
Normal file
@@ -0,0 +1,35 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://rxbjx7rhfd8k"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c3w6uvr4jjkwa" path="res://background/plank.png" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://ci8y3ieuf3ltc" path="res://background/plankpin.png" id="2"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="1"]
|
||||
size = Vector2(128, 8)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="2"]
|
||||
size = Vector2(16, 27)
|
||||
|
||||
[node name="Seesaw" type="Node2D"]
|
||||
|
||||
[node name="Plank" type="RigidBody2D" parent="."]
|
||||
mass = 5.10204
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Plank"]
|
||||
texture = ExtResource("1")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Plank"]
|
||||
shape = SubResource("1")
|
||||
|
||||
[node name="Pin" type="PinJoint2D" parent="."]
|
||||
node_a = NodePath("../Plank")
|
||||
node_b = NodePath("../Pillar")
|
||||
|
||||
[node name="Pillar" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Pillar"]
|
||||
position = Vector2(0, 10)
|
||||
texture = ExtResource("2")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Pillar"]
|
||||
position = Vector2(0, 12.5)
|
||||
shape = SubResource("2")
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/coin.png-c9e5c2f51b2a10beb2d794afbbee004f.cte
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class_name Enemy
|
||||
extends RigidBody2D
|
||||
class_name Enemy extends RigidBody2D
|
||||
|
||||
|
||||
const WALK_SPEED = 50
|
||||
|
||||
@@ -8,40 +8,39 @@ enum State {
|
||||
DYING,
|
||||
}
|
||||
|
||||
var state = State.WALKING
|
||||
var _state := State.WALKING
|
||||
|
||||
var direction = -1
|
||||
var anim = ""
|
||||
var direction := -1
|
||||
var anim := ""
|
||||
|
||||
var Bullet = preload("res://player/bullet.gd")
|
||||
var Bullet := preload("res://player/bullet.gd")
|
||||
|
||||
@onready var rc_left = $RaycastLeft
|
||||
@onready var rc_right = $RaycastRight
|
||||
@onready var rc_left := $RaycastLeft as RayCast2D
|
||||
@onready var rc_right := $RaycastRight as RayCast2D
|
||||
|
||||
func _integrate_forces(s):
|
||||
var lv = s.get_linear_velocity()
|
||||
var new_anim = anim
|
||||
|
||||
if state == State.DYING:
|
||||
func _integrate_forces(state: PhysicsDirectBodyState2D) -> void:
|
||||
var velocity := state.get_linear_velocity()
|
||||
var new_anim := anim
|
||||
|
||||
if _state == State.DYING:
|
||||
new_anim = "explode"
|
||||
elif state == State.WALKING:
|
||||
elif _state == State.WALKING:
|
||||
new_anim = "walk"
|
||||
|
||||
var wall_side = 0.0
|
||||
var wall_side := 0.0
|
||||
|
||||
for i in range(s.get_contact_count()):
|
||||
var cc = s.get_contact_collider_object(i)
|
||||
var dp = s.get_contact_local_normal(i)
|
||||
for collider_index in state.get_contact_count():
|
||||
var collider := state.get_contact_collider_object(collider_index)
|
||||
var collision_normal := state.get_contact_local_normal(collider_index)
|
||||
|
||||
if cc:
|
||||
if cc is Bullet and not cc.disabled:
|
||||
# enqueue call
|
||||
call_deferred("_bullet_collider", cc, s, dp)
|
||||
break
|
||||
if collider is Bullet and not (collider as Bullet).disabled:
|
||||
_bullet_collider.call_deferred(collider, state, collision_normal)
|
||||
break
|
||||
|
||||
if dp.x > 0.9:
|
||||
if collision_normal.x > 0.9:
|
||||
wall_side = 1.0
|
||||
elif dp.x < -0.9:
|
||||
elif collision_normal.x < -0.9:
|
||||
wall_side = -1.0
|
||||
|
||||
if wall_side != 0 and wall_side != direction:
|
||||
@@ -54,35 +53,36 @@ func _integrate_forces(s):
|
||||
direction = -direction
|
||||
($Sprite2D as Sprite2D).scale.x = -direction
|
||||
|
||||
lv.x = direction * WALK_SPEED
|
||||
velocity.x = direction * WALK_SPEED
|
||||
|
||||
if anim != new_anim:
|
||||
anim = new_anim
|
||||
($AnimationPlayer as AnimationPlayer).play(anim)
|
||||
|
||||
s.set_linear_velocity(lv)
|
||||
state.set_linear_velocity(velocity)
|
||||
|
||||
|
||||
func _die():
|
||||
func _die() -> void:
|
||||
queue_free()
|
||||
|
||||
|
||||
func _pre_explode():
|
||||
func _pre_explode() -> void:
|
||||
#make sure nothing collides against this
|
||||
$Shape1.queue_free()
|
||||
$Shape2.queue_free()
|
||||
$Shape3.queue_free()
|
||||
|
||||
# Stay there
|
||||
#mode = MODE_STATIC
|
||||
($SoundExplode as AudioStreamPlayer2D).play()
|
||||
|
||||
|
||||
func _bullet_collider(cc, s, dp):
|
||||
#mode = MODE_RIGID
|
||||
state = State.DYING
|
||||
func _bullet_collider(
|
||||
collider: Bullet,
|
||||
state: PhysicsDirectBodyState2D,
|
||||
collision_normal: Vector2
|
||||
) -> void:
|
||||
_state = State.DYING
|
||||
|
||||
s.set_angular_velocity(sign(dp.x) * 33.0)
|
||||
state.set_angular_velocity(signf(collision_normal.x) * 33.0)
|
||||
physics_material_override.friction = 1
|
||||
cc.disable()
|
||||
collider.disable()
|
||||
($SoundHit as AudioStreamPlayer2D).play()
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/enemy.png-1891d9038eeed672a2459bc4e7db5910.ct
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
[gd_scene load_steps=12 format=2]
|
||||
[gd_scene load_steps=14 format=3 uid="uid://daqqtote00syu"]
|
||||
|
||||
[ext_resource path="res://enemy/enemy.gd" type="Script" id=1]
|
||||
[ext_resource path="res://enemy/enemy.png" type="Texture2D" id=2]
|
||||
[ext_resource path="res://player/bullet.png" type="Texture2D" id=3]
|
||||
[ext_resource path="res://audio/sound_hit.wav" type="AudioStream" id=4]
|
||||
[ext_resource path="res://audio/sound_explode.wav" type="AudioStream" id=5]
|
||||
[ext_resource type="Script" path="res://enemy/enemy.gd" id="1_hjwkx"]
|
||||
[ext_resource type="Texture2D" uid="uid://crrmmbu8k46tl" path="res://enemy/enemy.png" id="2_org2d"]
|
||||
[ext_resource type="Texture2D" uid="uid://7sv64orewgmb" path="res://player/bullet.png" id="3_7unrb"]
|
||||
[ext_resource type="AudioStream" uid="uid://cfssio7r2t7wq" path="res://audio/sound_hit.wav" id="4_5rkwm"]
|
||||
[ext_resource type="AudioStream" uid="uid://bulmr2lpb7y4h" path="res://audio/sound_explode.wav" id="5_t2e2f"]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id=1]
|
||||
[sub_resource type="PhysicsMaterial" id="1"]
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
[sub_resource type="Animation" id="2"]
|
||||
length = 6.0
|
||||
step = 0.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
@@ -24,11 +24,11 @@ tracks/0/keys = {
|
||||
"values": [4]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Explosion:emitting")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
@@ -36,28 +36,28 @@ tracks/1/keys = {
|
||||
"values": [true]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.8, 2),
|
||||
"times": PackedFloat32Array(1.04, 2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": "_pre_explode"
|
||||
"method": &"_pre_explode"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": "_die"
|
||||
"method": &"_die"
|
||||
}]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0.5, 1.1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
@@ -65,16 +65,16 @@ tracks/3/keys = {
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
[sub_resource type="Animation" id="3"]
|
||||
length = 6.75
|
||||
loop = true
|
||||
loop_mode = 1
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
@@ -82,16 +82,16 @@ tracks/0/keys = {
|
||||
"values": [5, 6, 5, 6, 5, 6, 7, 6, 7, 5]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=4]
|
||||
[sub_resource type="Animation" id="4"]
|
||||
length = 1.25
|
||||
loop = true
|
||||
loop_mode = 1
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
@@ -99,55 +99,85 @@ tracks/0/keys = {
|
||||
"values": [0, 1, 2, 3, 4, 0]
|
||||
}
|
||||
|
||||
[sub_resource type="CircleShape2D" id=5]
|
||||
[sub_resource type="Animation" id="Animation_a7qal"]
|
||||
resource_name = "RESET"
|
||||
length = 0.01
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ay0tp"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_a7qal"),
|
||||
"explode": SubResource("2"),
|
||||
"idle": SubResource("3"),
|
||||
"walk": SubResource("4")
|
||||
}
|
||||
|
||||
[sub_resource type="CircleShape2D" id="5"]
|
||||
radius = 7.0
|
||||
|
||||
[sub_resource type="Gradient" id=6]
|
||||
[sub_resource type="Gradient" id="6"]
|
||||
offsets = PackedFloat32Array(0.5, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 0.501961, 0, 0, 0, 0)
|
||||
|
||||
[node name="Enemy" type="RigidDynamicBody2D"]
|
||||
mode = 2
|
||||
physics_material_override = SubResource( 1 )
|
||||
contacts_reported = 4
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Enabler" type="VisibleOnScreenEnabler2D" parent="."]
|
||||
position = Vector2(8.12845, 5.5017)
|
||||
scale = Vector2(11.7528, 5.43145)
|
||||
pause_particles = false
|
||||
[node name="Enemy" type="RigidBody2D"]
|
||||
physics_material_override = SubResource("1")
|
||||
max_contacts_reported = 4
|
||||
contact_monitor = true
|
||||
lock_rotation = true
|
||||
script = ExtResource("1_hjwkx")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/explode = SubResource( 2 )
|
||||
anims/idle = SubResource( 3 )
|
||||
anims/walk = SubResource( 4 )
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_ay0tp")
|
||||
}
|
||||
|
||||
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
|
||||
rect = Rect2(-150, -100, 300, 200)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource( 2 )
|
||||
texture = ExtResource("2_org2d")
|
||||
hframes = 8
|
||||
frame = 4
|
||||
|
||||
[node name="Shape1" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(-0.54036, -1.08072)
|
||||
shape = SubResource( 5 )
|
||||
shape = SubResource("5")
|
||||
|
||||
[node name="Shape2" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(3.24216, 1.62108)
|
||||
shape = SubResource( 5 )
|
||||
shape = SubResource("5")
|
||||
|
||||
[node name="Shape3" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(-6.2475, 1.76707)
|
||||
shape = SubResource( 5 )
|
||||
shape = SubResource("5")
|
||||
|
||||
[node name="RaycastLeft" type="RayCast2D" parent="."]
|
||||
position = Vector2(-14, -4.672)
|
||||
enabled = true
|
||||
cast_to = Vector2(0, 22.5)
|
||||
|
||||
[node name="RaycastRight" type="RayCast2D" parent="."]
|
||||
position = Vector2(11, -4.672)
|
||||
enabled = true
|
||||
cast_to = Vector2(0, 22.5)
|
||||
|
||||
[node name="Explosion" type="CPUParticles2D" parent="."]
|
||||
modulate = Color(1, 1, 1, 0.685843)
|
||||
@@ -157,19 +187,15 @@ lifetime = 0.5
|
||||
one_shot = true
|
||||
speed_scale = 1.2
|
||||
explosiveness = 0.76
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3_7unrb")
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 8.0
|
||||
spread = 180.0
|
||||
gravity = Vector2(0, 0)
|
||||
initial_velocity = 120.0
|
||||
initial_velocity_random = 0.5
|
||||
angle_random = 1.0
|
||||
scale_amount_random = 1.0
|
||||
color_ramp = SubResource( 6 )
|
||||
color_ramp = SubResource("6")
|
||||
|
||||
[node name="SoundHit" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource( 4 )
|
||||
stream = ExtResource("4_5rkwm")
|
||||
|
||||
[node name="SoundExplode" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource( 5 )
|
||||
stream = ExtResource("5_t2e2f")
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 527 B |
BIN
2d/physics_platformer/icon.webp
Normal file
BIN
2d/physics_platformer/icon.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@@ -2,23 +2,23 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dv2hr3igi3roi"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||
uid="uid://upnbycigfu4k"
|
||||
path="res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
|
||||
source_file="res://icon.webp"
|
||||
dest_files=["res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
@@ -1,16 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://platform/moving_platform.gd" type="Script" id=1]
|
||||
[ext_resource path="res://platform/moving_platform.png" type="Texture2D" id=2]
|
||||
|
||||
[node name="MovingPlatform" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Platform" type="RigidDynamicBody2D" parent="."]
|
||||
mode = 3
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Platform"]
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Platform"]
|
||||
polygon = PackedVector2Array(-44, -12, 44, -12, 44, 12, -44, 12)
|
||||
@@ -1,16 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://platform/one_way_platform.png" type="Texture2D" id=1]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2(50, 5)
|
||||
|
||||
[node name="OneWayPlatform" type="StaticBody2D"]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0.73152, -6.5836)
|
||||
shape = SubResource( 1 )
|
||||
one_way_collision = true
|
||||
@@ -1,17 +0,0 @@
|
||||
class_name MovingPlatform
|
||||
extends Node2D
|
||||
|
||||
@export var motion = Vector2()
|
||||
@export var cycle = 1.0
|
||||
|
||||
var accum = 0.0
|
||||
|
||||
func _physics_process(delta):
|
||||
accum += delta * (1.0 / cycle) * TAU
|
||||
accum = fmod(accum, TAU)
|
||||
|
||||
var d = sin(accum)
|
||||
var xf = Transform2D()
|
||||
|
||||
xf[2]= motion * d
|
||||
($Platform as RigidBody2D).transform = xf
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/moving_platform.png-7e92061cd93e8b0235df711d3
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
11
2d/physics_platformer/platform/moving_platform.tscn
Normal file
11
2d/physics_platformer/platform/moving_platform.tscn
Normal file
@@ -0,0 +1,11 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dtbrdmojpvetu"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cde7btbdorp8f" path="res://platform/moving_platform.png" id="2"]
|
||||
|
||||
[node name="MovingPlatform" type="CharacterBody2D"]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2")
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PackedVector2Array(-44, -12, 44, -12, 44, 12, -44, 12)
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/one_way_platform.png-2865772e209813c1636a14ae
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
16
2d/physics_platformer/platform/one_way_platform.tscn
Normal file
16
2d/physics_platformer/platform/one_way_platform.tscn
Normal file
@@ -0,0 +1,16 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dkmxopg1dknq8"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c15sicsdamq2o" path="res://platform/one_way_platform.png" id="1"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="1"]
|
||||
size = Vector2(110, 10)
|
||||
|
||||
[node name="OneWayPlatform" type="StaticBody2D"]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0.73152, -6.5836)
|
||||
shape = SubResource("1")
|
||||
one_way_collision = true
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/bullet.png-5615cb9904aab8db60fe6f48e996475f.c
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/osb_fire.png-67a49910acd764fd7c67429af0ad5cb8
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/osb_jump.png-0d4d2b2d1a7d2c11e3e4fd800b8589ed
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/osb_left.png-95ec3a371455889d592aa8cae0a755bc
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/osb_right.png-db9bb4651315f3d42b87bd17a86cce7
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
@@ -1,27 +1,5 @@
|
||||
class_name Player
|
||||
extends RigidBody2D
|
||||
class_name Player extends RigidBody2D
|
||||
|
||||
# Character Demo, written by Juan Linietsky.
|
||||
#
|
||||
# Implementation of a 2D Character controller.
|
||||
# This implementation uses the physics engine for
|
||||
# controlling a character, in a very similar way
|
||||
# than a 3D character controller would be implemented.
|
||||
#
|
||||
# Using the physics engine for this has the main advantages:
|
||||
# - Easy to write.
|
||||
# - Interaction with other physics-based objects is free
|
||||
# - Only have to deal with the object linear velocity, not position
|
||||
# - All collision/area framework available
|
||||
#
|
||||
# But also has the following disadvantages:
|
||||
# - Objects may bounce a little bit sometimes
|
||||
# - Going up ramps sends the chracter flying up, small hack is needed.
|
||||
# - A ray collider is needed to avoid sliding down on ramps and
|
||||
# undesiderd bumps, small steps and rare numerical precision errors.
|
||||
# (another alternative may be to turn on friction when the character is not moving).
|
||||
# - Friction cant be used, so floor velocity must be considered
|
||||
# for moving platforms.
|
||||
|
||||
const WALK_ACCEL = 500.0
|
||||
const WALK_DEACCEL = 500.0
|
||||
@@ -33,63 +11,64 @@ const STOP_JUMP_FORCE = 450.0
|
||||
const MAX_SHOOT_POSE_TIME = 0.3
|
||||
const MAX_FLOOR_AIRBORNE_TIME = 0.15
|
||||
|
||||
var anim = ""
|
||||
var siding_left = false
|
||||
var jumping = false
|
||||
var stopping_jump = false
|
||||
var shooting = false
|
||||
var anim := ""
|
||||
var siding_left := false
|
||||
var jumping := false
|
||||
var stopping_jump := false
|
||||
var shooting := false
|
||||
|
||||
var floor_h_velocity = 0.0
|
||||
var floor_h_velocity: float = 0.0
|
||||
|
||||
var airborne_time = 1e20
|
||||
var shoot_time = 1e20
|
||||
var airborne_time: float = 1e20
|
||||
var shoot_time: float = 1e20
|
||||
|
||||
var Bullet = preload("res://player/Bullet.tscn")
|
||||
var Enemy = preload("res://enemy/Enemy.tscn")
|
||||
var Bullet := preload("res://player/bullet.tscn")
|
||||
var Enemy := preload("res://enemy/enemy.tscn")
|
||||
|
||||
@onready var sound_jump = $SoundJump
|
||||
@onready var sound_shoot = $SoundShoot
|
||||
@onready var sprite = $Sprite2D
|
||||
@onready var sprite_smoke = sprite.get_node(^"Smoke")
|
||||
@onready var animation_player = $AnimationPlayer
|
||||
@onready var bullet_shoot = $BulletShoot
|
||||
@onready var sound_jump := $SoundJump as AudioStreamPlayer2D
|
||||
@onready var sound_shoot := $SoundShoot as AudioStreamPlayer2D
|
||||
@onready var sprite := $Sprite2D as Sprite2D
|
||||
@onready var sprite_smoke := sprite.get_node(^"Smoke") as CPUParticles2D
|
||||
@onready var animation_player := $AnimationPlayer as AnimationPlayer
|
||||
@onready var bullet_shoot := $BulletShoot as Marker2D
|
||||
|
||||
func _integrate_forces(s):
|
||||
var lv = s.get_linear_velocity()
|
||||
var step = s.get_step()
|
||||
|
||||
var new_anim = anim
|
||||
var new_siding_left = siding_left
|
||||
func _integrate_forces(state: PhysicsDirectBodyState2D) -> void:
|
||||
var velocity := state.get_linear_velocity()
|
||||
var step := state.get_step()
|
||||
|
||||
var new_anim := anim
|
||||
var new_siding_left := siding_left
|
||||
|
||||
# Get player input.
|
||||
var move_left = Input.is_action_pressed(&"move_left")
|
||||
var move_right = Input.is_action_pressed(&"move_right")
|
||||
var jump = Input.is_action_pressed(&"jump")
|
||||
var shoot = Input.is_action_pressed(&"shoot")
|
||||
var spawn = Input.is_action_pressed(&"spawn")
|
||||
var move_left := Input.is_action_pressed(&"move_left")
|
||||
var move_right := Input.is_action_pressed(&"move_right")
|
||||
var jump := Input.is_action_pressed(&"jump")
|
||||
var shoot := Input.is_action_pressed(&"shoot")
|
||||
var spawn := Input.is_action_pressed(&"spawn")
|
||||
|
||||
if spawn:
|
||||
call_deferred("_spawn_enemy_above")
|
||||
_spawn_enemy_above.call_deferred()
|
||||
|
||||
# Deapply prev floor velocity.
|
||||
lv.x -= floor_h_velocity
|
||||
velocity.x -= floor_h_velocity
|
||||
floor_h_velocity = 0.0
|
||||
|
||||
# Find the floor (a contact with upwards facing collision normal).
|
||||
var found_floor = false
|
||||
var floor_index = -1
|
||||
var found_floor := false
|
||||
var floor_index := -1
|
||||
|
||||
for x in range(s.get_contact_count()):
|
||||
var ci = s.get_contact_local_normal(x)
|
||||
for contact_index in state.get_contact_count():
|
||||
var collision_normal = state.get_contact_local_normal(contact_index)
|
||||
|
||||
if ci.dot(Vector2(0, -1)) > 0.6:
|
||||
if collision_normal.dot(Vector2(0, -1)) > 0.6:
|
||||
found_floor = true
|
||||
floor_index = x
|
||||
floor_index = contact_index
|
||||
|
||||
# A good idea when implementing characters of all kinds,
|
||||
# compensates for physics imprecision, as well as human reaction delay.
|
||||
if shoot and not shooting:
|
||||
call_deferred("_shot_bullet")
|
||||
_shot_bullet.call_deferred()
|
||||
else:
|
||||
shoot_time += step
|
||||
|
||||
@@ -98,49 +77,49 @@ func _integrate_forces(s):
|
||||
else:
|
||||
airborne_time += step # Time it spent in the air.
|
||||
|
||||
var on_floor = airborne_time < MAX_FLOOR_AIRBORNE_TIME
|
||||
var on_floor := airborne_time < MAX_FLOOR_AIRBORNE_TIME
|
||||
|
||||
# Process jump.
|
||||
if jumping:
|
||||
if lv.y > 0:
|
||||
if velocity.y > 0:
|
||||
# Set off the jumping flag if going down.
|
||||
jumping = false
|
||||
elif not jump:
|
||||
stopping_jump = true
|
||||
|
||||
if stopping_jump:
|
||||
lv.y += STOP_JUMP_FORCE * step
|
||||
velocity.y += STOP_JUMP_FORCE * step
|
||||
|
||||
if on_floor:
|
||||
# Process logic when character is on floor.
|
||||
if move_left and not move_right:
|
||||
if lv.x > -WALK_MAX_VELOCITY:
|
||||
lv.x -= WALK_ACCEL * step
|
||||
if velocity.x > -WALK_MAX_VELOCITY:
|
||||
velocity.x -= WALK_ACCEL * step
|
||||
elif move_right and not move_left:
|
||||
if lv.x < WALK_MAX_VELOCITY:
|
||||
lv.x += WALK_ACCEL * step
|
||||
if velocity.x < WALK_MAX_VELOCITY:
|
||||
velocity.x += WALK_ACCEL * step
|
||||
else:
|
||||
var xv = abs(lv.x)
|
||||
var xv := absf(velocity.x)
|
||||
xv -= WALK_DEACCEL * step
|
||||
if xv < 0:
|
||||
xv = 0
|
||||
lv.x = sign(lv.x) * xv
|
||||
velocity.x = signf(velocity.x) * xv
|
||||
|
||||
# Check jump.
|
||||
if not jumping and jump:
|
||||
lv.y = -JUMP_VELOCITY
|
||||
velocity.y = -JUMP_VELOCITY
|
||||
jumping = true
|
||||
stopping_jump = false
|
||||
sound_jump.play()
|
||||
|
||||
# Check siding.
|
||||
if lv.x < 0 and move_left:
|
||||
if velocity.x < 0 and move_left:
|
||||
new_siding_left = true
|
||||
elif lv.x > 0 and move_right:
|
||||
elif velocity.x > 0 and move_right:
|
||||
new_siding_left = false
|
||||
if jumping:
|
||||
new_anim = "jumping"
|
||||
elif abs(lv.x) < 0.1:
|
||||
elif absf(velocity.x) < 0.1:
|
||||
if shoot_time < MAX_SHOOT_POSE_TIME:
|
||||
new_anim = "idle_weapon"
|
||||
else:
|
||||
@@ -153,20 +132,20 @@ func _integrate_forces(s):
|
||||
else:
|
||||
# Process logic when the character is in the air.
|
||||
if move_left and not move_right:
|
||||
if lv.x > -WALK_MAX_VELOCITY:
|
||||
lv.x -= AIR_ACCEL * step
|
||||
if velocity.x > -WALK_MAX_VELOCITY:
|
||||
velocity.x -= AIR_ACCEL * step
|
||||
elif move_right and not move_left:
|
||||
if lv.x < WALK_MAX_VELOCITY:
|
||||
lv.x += AIR_ACCEL * step
|
||||
if velocity.x < WALK_MAX_VELOCITY:
|
||||
velocity.x += AIR_ACCEL * step
|
||||
else:
|
||||
var xv = abs(lv.x)
|
||||
var xv := absf(velocity.x)
|
||||
xv -= AIR_DEACCEL * step
|
||||
|
||||
if xv < 0:
|
||||
xv = 0
|
||||
lv.x = sign(lv.x) * xv
|
||||
velocity.x = signf(velocity.x) * xv
|
||||
|
||||
if lv.y < 0:
|
||||
if velocity.y < 0:
|
||||
if shoot_time < MAX_SHOOT_POSE_TIME:
|
||||
new_anim = "jumping_weapon"
|
||||
else:
|
||||
@@ -195,36 +174,35 @@ func _integrate_forces(s):
|
||||
|
||||
# Apply floor velocity.
|
||||
if found_floor:
|
||||
floor_h_velocity = s.get_contact_collider_velocity_at_position(floor_index).x
|
||||
lv.x += floor_h_velocity
|
||||
floor_h_velocity = state.get_contact_collider_velocity_at_position(floor_index).x
|
||||
velocity.x += floor_h_velocity
|
||||
|
||||
# Finally, apply gravity and set back the linear velocity.
|
||||
lv += s.get_total_gravity() * step
|
||||
s.set_linear_velocity(lv)
|
||||
velocity += state.get_total_gravity() * step
|
||||
state.set_linear_velocity(velocity)
|
||||
|
||||
|
||||
func _shot_bullet():
|
||||
func _shot_bullet() -> void:
|
||||
shoot_time = 0
|
||||
var bi = Bullet.instantiate()
|
||||
var ss
|
||||
var bullet := Bullet.instantiate() as RigidBody2D
|
||||
var speed_scale: float
|
||||
if siding_left:
|
||||
ss = -1.0
|
||||
speed_scale = -1.0
|
||||
else:
|
||||
ss = 1.0
|
||||
var pos = position + bullet_shoot.position * Vector2(ss, 1.0)
|
||||
speed_scale = 1.0
|
||||
|
||||
bi.position = pos
|
||||
get_parent().add_child(bi)
|
||||
bullet.position = self.position + bullet_shoot.position * Vector2(speed_scale, 1.0)
|
||||
get_parent().add_child(bullet)
|
||||
|
||||
bi.linear_velocity = Vector2(400.0 * ss, -40)
|
||||
bullet.linear_velocity = Vector2(400.0 * speed_scale, -40)
|
||||
|
||||
sprite_smoke.restart()
|
||||
sound_shoot.play()
|
||||
|
||||
add_collision_exception_with(bi) # Make bullet and this not collide.
|
||||
add_collision_exception_with(bullet) # Make bullet and this not collide.
|
||||
|
||||
|
||||
func _spawn_enemy_above():
|
||||
var e = Enemy.instantiate()
|
||||
e.position = position + 50 * Vector2.UP
|
||||
get_parent().add_child(e)
|
||||
func _spawn_enemy_above() -> void:
|
||||
var enemy := Enemy.instantiate() as RigidBody2D
|
||||
enemy.position = self.position + 50 * Vector2.UP
|
||||
get_parent().add_child(enemy)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=20 format=3 uid="uid://bv85r3nk410cj"]
|
||||
[gd_scene load_steps=20 format=3 uid="uid://bbxsp4gp554vh"]
|
||||
|
||||
[ext_resource type="Script" path="res://player/player.gd" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://u5mto8jq4nhu" path="res://player/robot_demo.png" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://dh57uloeigwj6" path="res://player/player.webp" id="2_675nc"]
|
||||
[ext_resource type="Texture2D" uid="uid://7sv64orewgmb" path="res://player/bullet.png" id="3"]
|
||||
[ext_resource type="AudioStream" uid="uid://gw2a4ii0oby2" path="res://audio/sound_shoot.wav" id="8"]
|
||||
[ext_resource type="AudioStream" uid="uid://bpyko2i13mj0v" path="res://audio/sound_jump.wav" id="9"]
|
||||
@@ -194,10 +194,13 @@ length = 18.0
|
||||
mass = 1.5
|
||||
physics_material_override = SubResource("1")
|
||||
custom_integrator = true
|
||||
max_contacts_reported = 4
|
||||
contact_monitor = true
|
||||
lock_rotation = true
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2")
|
||||
texture = ExtResource("2_675nc")
|
||||
hframes = 16
|
||||
vframes = 2
|
||||
|
||||
@@ -220,7 +223,6 @@ libraries = {
|
||||
}
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
current = true
|
||||
zoom = Vector2(2, 2)
|
||||
limit_left = 0
|
||||
limit_top = 0
|
||||
BIN
2d/physics_platformer/player/player.webp
Normal file
BIN
2d/physics_platformer/player/player.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
@@ -2,23 +2,23 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://u5mto8jq4nhu"
|
||||
path="res://.godot/imported/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.ctex"
|
||||
uid="uid://dh57uloeigwj6"
|
||||
path="res://.godot/imported/player.webp-f8efd9c2246a95708b9c4853ed21513e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://player/robot_demo.png"
|
||||
dest_files=["res://.godot/imported/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.ctex"]
|
||||
source_file="res://player/player.webp"
|
||||
dest_files=["res://.godot/imported/player.webp-f8efd9c2246a95708b9c4853ed21513e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.0 KiB |
@@ -8,40 +8,6 @@
|
||||
|
||||
config_version=5
|
||||
|
||||
_global_script_classes=[{
|
||||
"base": "RigidBody2D",
|
||||
"class": &"Bullet",
|
||||
"language": &"GDScript",
|
||||
"path": "res://player/bullet.gd"
|
||||
}, {
|
||||
"base": "Area2D",
|
||||
"class": &"Coin",
|
||||
"language": &"GDScript",
|
||||
"path": "res://coin/coin.gd"
|
||||
}, {
|
||||
"base": "RigidBody2D",
|
||||
"class": &"Enemy",
|
||||
"language": &"GDScript",
|
||||
"path": "res://enemy/enemy.gd"
|
||||
}, {
|
||||
"base": "Node2D",
|
||||
"class": &"MovingPlatform",
|
||||
"language": &"GDScript",
|
||||
"path": "res://platform/moving_platform.gd"
|
||||
}, {
|
||||
"base": "RigidBody2D",
|
||||
"class": &"Player",
|
||||
"language": &"GDScript",
|
||||
"path": "res://player/player.gd"
|
||||
}]
|
||||
_global_script_class_icons={
|
||||
"Bullet": "",
|
||||
"Coin": "",
|
||||
"Enemy": "",
|
||||
"MovingPlatform": "",
|
||||
"Player": ""
|
||||
}
|
||||
|
||||
[application]
|
||||
|
||||
config/name="Physics-Based Platformer 2D"
|
||||
@@ -49,9 +15,9 @@ config/description="This demo uses RigidDynamicBody2D for the player and enemies
|
||||
character controllers are more powerful than CharacterBody2D,
|
||||
but can be more difficult to handle, as they require
|
||||
manual modification of the RigidDynamicBody3D velocity."
|
||||
run/main_scene="res://Stage.tscn"
|
||||
run/main_scene="res://stage.tscn"
|
||||
config/features=PackedStringArray("4.0")
|
||||
config/icon="res://icon.png"
|
||||
config/icon="res://icon.webp"
|
||||
|
||||
[debug]
|
||||
|
||||
@@ -95,39 +61,39 @@ texture={
|
||||
|
||||
jump={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_left={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
|
||||
]
|
||||
}
|
||||
move_right={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
shoot={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
spawn={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777244,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777244,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
359
2d/physics_platformer/stage.tscn
Normal file
359
2d/physics_platformer/stage.tscn
Normal file
File diff suppressed because one or more lines are too long
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/tiles_demo.png-7ca5c7c5c02ab8abe0d585a6a8f086
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
|
||||
798
2d/physics_platformer/tileset.tres
Normal file
798
2d/physics_platformer/tileset.tres
Normal file
@@ -0,0 +1,798 @@
|
||||
[gd_resource type="TileSet" load_steps=18 format=3 uid="uid://rowrak7ls50v"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dbcdt0wqr3gd3" path="res://tiles_demo.png" id="1"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_va8am"]
|
||||
texture = ExtResource("1")
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, -12, 16, -12, 16, 16, -16, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, -16, -12, -16, 16, 16, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, 16, 12, 16, -16, -16, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, 12, -16, 12, -16, -16, 16, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -12, 16, -12, 16, 16, -16, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, -16, -12, -16, 16, 16, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, 16, 12, 16, -16, -16, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, 12, -16, 12, -16, -16, 16, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dri2i"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(32, 0)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, 16, -16, -12, 12, -12, 12, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -12, -12, -12, -12, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 12, 12, 12, 12, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, -12, 12, -12, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -12, 12, -12, 12, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -12, -12, -12, -12, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 12, 12, 12, 12, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, -12, 12, -12, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_hfgct"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(0, 32)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7xlxp"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(192, 32)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, 16, 16, 16, -16, -16, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, -16, 16, -16, -16, 16, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, 16, 16, 16, -16, -16, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, -16, 16, -16, -16, 16, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_64p8q"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(64, 32)
|
||||
texture_region_size = Vector2i(32, 96)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, -10, 16, 22, 16, 48, -16, 48)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 22, 16, -10, 16, 48, -16, 48)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -48, 16, -48, 16, -22, -16, 10)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -48, 16, -48, 16, 10, -16, -22)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -28, 16, 4, 16, 32, -16, 32)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, -28, -16, 4, -16, 32, 16, 32)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 28, 16, -4, 16, -32, -16, -32)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, 28, -16, -4, -16, -32, 16, -32)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_bgjgk"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(224, 32)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, 16, -16, -16, 12, -16, 12, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -16, -12, -16, -12, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 16, 12, 16, 12, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -12, 16, -12, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -16, 12, -16, 12, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -16, -12, -16, -12, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 16, 12, 16, 12, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -12, 16, -12, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_uq55q"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(64, 0)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, -12, 16, -12, 16, 12, -16, 12)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, -16, -12, -16, 12, 16, 12)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, 16, 12, 16, -12, -16, -12)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, 12, -16, 12, -16, -12, 16, -12)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -12, 16, -12, 16, 12, -16, 12)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, -16, -12, -16, 12, 16, 12)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, 16, 12, 16, -12, -16, -12)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, 12, -16, 12, -16, -12, 16, -12)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_l5dh6"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(96, 0)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, -12, 12, -12, 12, 12, -16, 12)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, -12, -12, -12, 12, 16, 12)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, 12, 12, 12, -12, -16, -12)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, 12, -12, 12, -12, -12, 16, -12)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -12, 12, -12, 12, 12, -16, 12)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, -12, -12, -12, 12, 16, 12)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, 12, 12, 12, -12, -16, -12)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, 12, -12, 12, -12, -12, 16, -12)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_w6c8t"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(32, 32)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, 16, -16, -16, 12, -16, 12, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -16, -12, -16, -12, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 16, 12, 16, 12, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -12, 16, -12, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -16, 12, -16, 12, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -16, -12, -16, -12, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 16, 12, 16, 12, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -12, 16, -12, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_05nbk"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(160, 64)
|
||||
texture_region_size = Vector2i(96, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-48, 16, -48, -16, -20, -16, -20, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(48, 16, 48, -16, 20, -16.5, 20, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -16, -32, 16, -4, 16, -4, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(32, -16, 32, 16, 4, 16, 4, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-32, 16, -32, -16, -4, -16, -4, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(32, 16, 32, -16, 4, -16, 4, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -16, -32, 16, -4, 16, -4, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(32, -16, 32, 16, 4, 16, 4, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ee0gv"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(32, 64)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, 16, -16, -16, 12, -16, 16, -12, 16, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -16, -12, -16, -16, -12, -16, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 16, 12, 16, 16, 12, 16, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -12, 16, -16, 12, -16, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -16, 12, -16, 16, -12, 16, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -16, -12, -16, -16, -12, -16, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 16, 12, 16, 16, 12, 16, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -12, 16, -16, 12, -16, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_lnu6d"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(96, 96)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, 16, -16, -12, 16, -12, 16, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -12, -16, -12, -16, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 12, 16, 12, 16, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, -16, 12, -16, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -12, 16, -12, 16, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -12, -16, -12, -16, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 12, 16, 12, 16, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, -16, 12, -16, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8javq"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(128, 96)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
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(-16, 16, -16, -12, 16, -12, 16, 16)
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -12, -16, -12, -16, 16)
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 12, 16, 12, 16, -16)
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, -16, 12, -16, -16)
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -12, 16, -12, 16, 16)
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, 16, -12, -16, -12, -16, 16)
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 12, 16, 12, 16, -16)
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, -16, 12, -16, -16)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8pchj"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(128, 64)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_s315k"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(128, 32)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_cnnsu"]
|
||||
texture = ExtResource("1")
|
||||
margins = Vector2i(128, 0)
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/next_alternative_id = 8
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/1 = 1
|
||||
0:0/1/flip_h = true
|
||||
0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/2 = 2
|
||||
0:0/2/flip_v = true
|
||||
0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/2/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/3 = 3
|
||||
0:0/3/flip_h = true
|
||||
0:0/3/flip_v = true
|
||||
0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/3/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/4 = 4
|
||||
0:0/4/transpose = true
|
||||
0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/4/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/5 = 5
|
||||
0:0/5/flip_h = true
|
||||
0:0/5/transpose = true
|
||||
0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/5/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/6 = 6
|
||||
0:0/6/flip_v = true
|
||||
0:0/6/transpose = true
|
||||
0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/6/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/7 = 7
|
||||
0:0/7/flip_h = true
|
||||
0:0/7/flip_v = true
|
||||
0:0/7/transpose = true
|
||||
0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/7/physics_layer_0/angular_velocity = 0.0
|
||||
|
||||
[resource]
|
||||
tile_size = Vector2i(32, 32)
|
||||
physics_layer_0/collision_layer = 1
|
||||
sources/0 = SubResource("TileSetAtlasSource_va8am")
|
||||
sources/1 = SubResource("TileSetAtlasSource_dri2i")
|
||||
sources/2 = SubResource("TileSetAtlasSource_w6c8t")
|
||||
sources/3 = SubResource("TileSetAtlasSource_05nbk")
|
||||
sources/4 = SubResource("TileSetAtlasSource_ee0gv")
|
||||
sources/5 = SubResource("TileSetAtlasSource_lnu6d")
|
||||
sources/6 = SubResource("TileSetAtlasSource_8javq")
|
||||
sources/7 = SubResource("TileSetAtlasSource_8pchj")
|
||||
sources/8 = SubResource("TileSetAtlasSource_s315k")
|
||||
sources/9 = SubResource("TileSetAtlasSource_cnnsu")
|
||||
sources/10 = SubResource("TileSetAtlasSource_hfgct")
|
||||
sources/11 = SubResource("TileSetAtlasSource_7xlxp")
|
||||
sources/12 = SubResource("TileSetAtlasSource_64p8q")
|
||||
sources/13 = SubResource("TileSetAtlasSource_bgjgk")
|
||||
sources/14 = SubResource("TileSetAtlasSource_uq55q")
|
||||
sources/15 = SubResource("TileSetAtlasSource_l5dh6")
|
||||
Reference in New Issue
Block a user