mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-07 00:10:09 +01:00
Update 2D Skeleton demo for Godot 4.1 (#976)
This commit is contained in:
@@ -6,7 +6,7 @@ there is a simple character controller that controls the animations.
|
||||
|
||||
Language: GDScript
|
||||
|
||||
Renderer: GLES 2
|
||||
Renderer: GL Compatibility
|
||||
|
||||
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/1027
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/cloud_1.png-d9f3821e0d58b8b79ac7a8bc81287ae8.
|
||||
[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/cloud_2.png-1b2bb3f73839db8c5ad1d01ad2876ab2.
|
||||
[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/cloud_3.png-a4ce274fb6c38e3b05e8f88cf8cfffb6.
|
||||
[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/distant_platforms_1.png-34bd3c6d35ad3a7b690f0
|
||||
[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/distant_platforms_2.png-2ecd927ea77506f4ec1f3
|
||||
[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/sky.png-c2b26f59be93d20195841091d4bd6a50.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,15 +1,10 @@
|
||||
extends Node2D
|
||||
|
||||
const LIMIT_LEFT = -315
|
||||
const LIMIT_TOP = -250
|
||||
const LIMIT_RIGHT = 955
|
||||
const LIMIT_BOTTOM = 690
|
||||
|
||||
func _ready():
|
||||
for child in get_children():
|
||||
if child is Player:
|
||||
var camera = child.get_node(^"Camera2D")
|
||||
camera.limit_left = LIMIT_LEFT
|
||||
camera.limit_top = LIMIT_TOP
|
||||
camera.limit_right = LIMIT_RIGHT
|
||||
camera.limit_bottom = LIMIT_BOTTOM
|
||||
var camera = find_child("Camera2D")
|
||||
var min_pos = $CameraLimit_min.global_position
|
||||
var max_pos = $CameraLimit_max.global_position
|
||||
camera.limit_left = min_pos.x
|
||||
camera.limit_top = min_pos.y
|
||||
camera.limit_right = max_pos.x
|
||||
camera.limit_bottom = max_pos.y
|
||||
|
||||
@@ -1,25 +1,29 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://c1n07vnm2brb8"]
|
||||
|
||||
[ext_resource path="res://level/background/distant_platforms_2.png" type="Texture2D" id=1]
|
||||
[ext_resource path="res://level/background/sky.png" type="Texture2D" id=2]
|
||||
[ext_resource path="res://level/background/cloud_1.png" type="Texture2D" id=3]
|
||||
[ext_resource path="res://level/background/cloud_2.png" type="Texture2D" id=4]
|
||||
[ext_resource path="res://level/background/cloud_3.png" type="Texture2D" id=5]
|
||||
[ext_resource path="res://level/background/distant_platforms_1.png" type="Texture2D" id=6]
|
||||
[ext_resource type="Texture2D" uid="uid://do8unqmg6yew6" path="res://level/background/distant_platforms_2.png" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://c8jm7s3tbb3b" path="res://level/background/sky.png" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://j28pf8bfgty" path="res://level/background/cloud_1.png" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://kreppu5t30jn" path="res://level/background/cloud_2.png" id="4"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwhwlduoqnb15" path="res://level/background/cloud_3.png" id="5"]
|
||||
[ext_resource type="Texture2D" uid="uid://b4lffygwgc7vy" path="res://level/background/distant_platforms_1.png" id="6"]
|
||||
|
||||
[node name="ParallaxBackground" type="ParallaxBackground"]
|
||||
scroll_base_scale = Vector2(0.4, 0)
|
||||
follow_viewport_enabled = true
|
||||
scroll_base_scale = Vector2(0.2, 0)
|
||||
|
||||
[node name="Sky" type="ParallaxLayer" parent="."]
|
||||
motion_scale = Vector2(1, 0)
|
||||
motion_offset = Vector2(0, -15)
|
||||
motion_mirroring = Vector2(400, 0)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Sky"]
|
||||
scale = Vector2(64, 0.94)
|
||||
texture = ExtResource( 2 )
|
||||
position = Vector2(0, -80)
|
||||
scale = Vector2(136.169, 2)
|
||||
texture = ExtResource("2")
|
||||
centered = false
|
||||
|
||||
[node name="Clouds" type="ParallaxLayer" parent="."]
|
||||
motion_scale = Vector2(0.1, 1)
|
||||
motion_scale = Vector2(0.1, 0.3)
|
||||
motion_offset = Vector2(-550, 0)
|
||||
|
||||
[node name="CloudGroup1" type="Node2D" parent="Clouds"]
|
||||
@@ -27,64 +31,64 @@ position = Vector2(-780, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup2" type="Node2D" parent="Clouds"]
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup3" type="Node2D" parent="Clouds"]
|
||||
@@ -92,32 +96,32 @@ position = Vector2(390, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup4" type="Node2D" parent="Clouds"]
|
||||
@@ -125,50 +129,56 @@ position = Vector2(780, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Mountains2" type="ParallaxLayer" parent="."]
|
||||
position = Vector2(0, 243)
|
||||
motion_scale = Vector2(0.2, 1)
|
||||
position = Vector2(0, 400)
|
||||
motion_scale = Vector2(0.1, 0)
|
||||
motion_mirroring = Vector2(400, 0)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains2"]
|
||||
position = Vector2(0, -64)
|
||||
texture = ExtResource( 1 )
|
||||
texture = ExtResource("1")
|
||||
centered = false
|
||||
offset = Vector2(0, -64)
|
||||
region_enabled = true
|
||||
region_rect = Rect2(0, 0, 2048, 128)
|
||||
|
||||
[node name="Mountains1" type="ParallaxLayer" parent="."]
|
||||
position = Vector2(0, 246)
|
||||
motion_scale = Vector2(0.4, 1)
|
||||
position = Vector2(0, 400)
|
||||
motion_scale = Vector2(0.3, 0)
|
||||
motion_mirroring = Vector2(400, 0)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains1"]
|
||||
position = Vector2(0, -64)
|
||||
texture = ExtResource( 6 )
|
||||
texture = ExtResource("6")
|
||||
centered = false
|
||||
offset = Vector2(0, -64)
|
||||
region_enabled = true
|
||||
region_rect = Rect2(0, 0, 2048, 128)
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/tiles_demo.png-68724c3ed5763f2cba827c6d71224f
|
||||
[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,335 +1,330 @@
|
||||
[gd_resource type="TileSet" load_steps=14 format=2]
|
||||
[gd_resource type="TileSet" load_steps=6 format=3 uid="uid://dlu6wo1aknvai"]
|
||||
|
||||
[ext_resource path="res://level/tileset/tiles_demo.png" type="Texture2D" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b54eod3j4xx34" path="res://level/tileset/tiles_demo.png" id="1_sa5xi"]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
points = PackedVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
[sub_resource type="TileMapPattern" id="TileMapPattern_4pfkh"]
|
||||
tile_data = PackedInt32Array(0, 393217, 65538, 1, 327681, 65538)
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
points = PackedVector2Array( 0, 6, 28, 6, 28, 32, 0, 32 )
|
||||
[sub_resource type="TileMapPattern" id="TileMapPattern_fatpo"]
|
||||
tile_data = PackedInt32Array(0, 327681, 2, 1, 393217, 2)
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
points = PackedVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 )
|
||||
[sub_resource type="TileMapPattern" id="TileMapPattern_hwg2d"]
|
||||
tile_data = PackedInt32Array(0, 262145, 0, 65536, 262145, 1, 131072, 262145, 2, 196608, 262145, 3)
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||
points = PackedVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
points = PackedVector2Array( 32, 38, 32, 64, 0, 64, 0, 6 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
points = PackedVector2Array( 0, 0, 28, 0, 28, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
points = PackedVector2Array( 28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||
points = PackedVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=9]
|
||||
points = PackedVector2Array( 0, 6, 28, 6, 28, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=10]
|
||||
points = PackedVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=11]
|
||||
points = PackedVector2Array( 0, 0, 32, 0, 32, 24, 0, 24 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=12]
|
||||
points = PackedVector2Array( 0, 0, 28, 0, 28, 24, 0, 24 )
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_v5kxh"]
|
||||
texture = ExtResource("1_sa5xi")
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/0 = 0
|
||||
0:0/0/terrain_set = 0
|
||||
0:0/0/terrain = 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/0/terrains_peering_bit/right_side = 0
|
||||
0:0/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
0:0/0/terrains_peering_bit/bottom_side = 0
|
||||
0:0/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
0:0/0/terrains_peering_bit/left_side = 0
|
||||
1:0/next_alternative_id = 2
|
||||
1:0/0 = 0
|
||||
1:0/0/terrain_set = 0
|
||||
1:0/0/terrain = 0
|
||||
1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
1:0/0/terrains_peering_bit/bottom_side = 0
|
||||
1:0/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
1:0/0/terrains_peering_bit/left_side = 0
|
||||
1:0/1 = 1
|
||||
1:0/1/flip_h = true
|
||||
1:0/1/terrain_set = 0
|
||||
1:0/1/terrain = 0
|
||||
1:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
1:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
1:0/1/terrains_peering_bit/right_side = 0
|
||||
1:0/1/terrains_peering_bit/bottom_right_corner = 0
|
||||
1:0/1/terrains_peering_bit/bottom_side = 0
|
||||
2:0/0 = 0
|
||||
2:0/0/terrain_set = 0
|
||||
2:0/0/terrain = 0
|
||||
2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 8, -16, 8)
|
||||
2:0/0/terrains_peering_bit/right_side = 0
|
||||
2:0/0/terrains_peering_bit/left_side = 0
|
||||
3:0/next_alternative_id = 2
|
||||
3:0/0 = 0
|
||||
3:0/0/terrain_set = 0
|
||||
3:0/0/terrain = 0
|
||||
3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 8, -16, 8)
|
||||
3:0/0/terrains_peering_bit/left_side = 0
|
||||
3:0/1 = 1
|
||||
3:0/1/flip_h = true
|
||||
3:0/1/terrain_set = 0
|
||||
3:0/1/terrain = 0
|
||||
3:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:0/1/physics_layer_0/angular_velocity = 0.0
|
||||
3:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 8, -16, 8)
|
||||
3:0/1/terrains_peering_bit/right_side = 0
|
||||
4:0/0 = 0
|
||||
4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:0/0 = 0
|
||||
6:0/0/terrain_set = 0
|
||||
6:0/0/terrain = 0
|
||||
6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
6:0/0/terrains_peering_bit/right_side = 0
|
||||
6:0/0/terrains_peering_bit/left_side = 0
|
||||
6:0/0/terrains_peering_bit/top_left_corner = 0
|
||||
6:0/0/terrains_peering_bit/top_side = 0
|
||||
6:0/0/terrains_peering_bit/top_right_corner = 0
|
||||
0:1/0 = 0
|
||||
0:1/0/terrain_set = 0
|
||||
0:1/0/terrain = 0
|
||||
0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
0:1/0/terrains_peering_bit/right_side = 0
|
||||
0:1/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
0:1/0/terrains_peering_bit/bottom_side = 0
|
||||
0:1/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
0:1/0/terrains_peering_bit/left_side = 0
|
||||
0:1/0/terrains_peering_bit/top_left_corner = 0
|
||||
0:1/0/terrains_peering_bit/top_side = 0
|
||||
0:1/0/terrains_peering_bit/top_right_corner = 0
|
||||
1:1/next_alternative_id = 2
|
||||
1:1/0 = 0
|
||||
1:1/0/terrain_set = 0
|
||||
1:1/0/terrain = 0
|
||||
1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
1:1/0/terrains_peering_bit/bottom_side = 0
|
||||
1:1/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
1:1/0/terrains_peering_bit/left_side = 0
|
||||
1:1/0/terrains_peering_bit/top_left_corner = 0
|
||||
1:1/0/terrains_peering_bit/top_side = 0
|
||||
1:1/1 = 1
|
||||
1:1/1/flip_h = true
|
||||
1:1/1/terrain_set = 0
|
||||
1:1/1/terrain = 0
|
||||
1:1/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:1/1/physics_layer_0/angular_velocity = 0.0
|
||||
1:1/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
1:1/1/terrains_peering_bit/right_side = 0
|
||||
1:1/1/terrains_peering_bit/bottom_right_corner = 0
|
||||
1:1/1/terrains_peering_bit/bottom_side = 0
|
||||
1:1/1/terrains_peering_bit/top_side = 0
|
||||
1:1/1/terrains_peering_bit/top_right_corner = 0
|
||||
4:1/0 = 0
|
||||
4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:1/0 = 0
|
||||
5:1/0/terrain_set = 0
|
||||
5:1/0/terrain = 0
|
||||
5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
5:1/0/terrains_peering_bit/right_side = 0
|
||||
5:1/0/terrains_peering_bit/bottom_side = 0
|
||||
5:1/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
5:1/0/terrains_peering_bit/left_side = 0
|
||||
5:1/0/terrains_peering_bit/top_left_corner = 0
|
||||
5:1/0/terrains_peering_bit/top_side = 0
|
||||
5:1/0/terrains_peering_bit/top_right_corner = 0
|
||||
6:1/0 = 0
|
||||
6:1/0/terrain_set = 0
|
||||
6:1/0/terrain = 0
|
||||
6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
6:1/0/terrains_peering_bit/right_side = 0
|
||||
6:1/0/terrains_peering_bit/left_side = 0
|
||||
6:1/0/terrains_peering_bit/top_left_corner = 0
|
||||
6:1/0/terrains_peering_bit/top_side = 0
|
||||
6:1/0/terrains_peering_bit/top_right_corner = 0
|
||||
7:1/next_alternative_id = 2
|
||||
7:1/0 = 0
|
||||
7:1/0/terrain_set = 0
|
||||
7:1/0/terrain = 0
|
||||
7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
7:1/0/terrains_peering_bit/left_side = 0
|
||||
7:1/0/terrains_peering_bit/top_left_corner = 0
|
||||
7:1/0/terrains_peering_bit/top_side = 0
|
||||
7:1/1 = 1
|
||||
7:1/1/flip_h = true
|
||||
7:1/1/terrain_set = 0
|
||||
7:1/1/terrain = 0
|
||||
7:1/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:1/1/physics_layer_0/angular_velocity = 0.0
|
||||
7:1/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
7:1/1/terrains_peering_bit/right_side = 0
|
||||
7:1/1/terrains_peering_bit/top_side = 0
|
||||
7:1/1/terrains_peering_bit/top_right_corner = 0
|
||||
1:2/next_alternative_id = 2
|
||||
1:2/0 = 0
|
||||
1:2/0/terrain_set = 0
|
||||
1:2/0/terrain = 0
|
||||
1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
1:2/0/terrains_peering_bit/right_side = 0
|
||||
1:2/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
1:2/0/terrains_peering_bit/bottom_side = 0
|
||||
1:2/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
1:2/0/terrains_peering_bit/left_side = 0
|
||||
1:2/0/terrains_peering_bit/top_left_corner = 0
|
||||
1:2/0/terrains_peering_bit/top_side = 0
|
||||
1:2/1 = 1
|
||||
1:2/1/flip_h = true
|
||||
1:2/1/terrain_set = 0
|
||||
1:2/1/terrain = 0
|
||||
1:2/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:2/1/physics_layer_0/angular_velocity = 0.0
|
||||
1:2/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
1:2/1/terrains_peering_bit/right_side = 0
|
||||
1:2/1/terrains_peering_bit/bottom_right_corner = 0
|
||||
1:2/1/terrains_peering_bit/bottom_side = 0
|
||||
1:2/1/terrains_peering_bit/bottom_left_corner = 0
|
||||
1:2/1/terrains_peering_bit/left_side = 0
|
||||
1:2/1/terrains_peering_bit/top_side = 0
|
||||
1:2/1/terrains_peering_bit/top_right_corner = 0
|
||||
2:2/next_alternative_id = 2
|
||||
2:2/0 = 0
|
||||
2:2/0/terrain_set = 0
|
||||
2:2/0/terrain = 0
|
||||
2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, 16, -16, 16)
|
||||
2:2/0/terrains_peering_bit/bottom_side = 0
|
||||
2:2/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
2:2/0/terrains_peering_bit/left_side = 0
|
||||
2:2/1 = 1
|
||||
2:2/1/flip_h = true
|
||||
2:2/1/terrain_set = 0
|
||||
2:2/1/terrain = 0
|
||||
2:2/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:2/1/physics_layer_0/angular_velocity = 0.0
|
||||
2:2/1/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -16, 16)
|
||||
2:2/1/terrains_peering_bit/right_side = 0
|
||||
2:2/1/terrains_peering_bit/bottom_right_corner = 0
|
||||
2:2/1/terrains_peering_bit/bottom_side = 0
|
||||
4:2/0 = 0
|
||||
4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:2/next_alternative_id = 2
|
||||
5:2/0 = 0
|
||||
5:2/0/terrain_set = 0
|
||||
5:2/0/terrain = 0
|
||||
5:2/0/probability = 0.0
|
||||
5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
5:2/0/terrains_peering_bit/bottom_side = 0
|
||||
5:2/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
5:2/0/terrains_peering_bit/left_side = 0
|
||||
5:2/0/terrains_peering_bit/top_left_corner = 0
|
||||
5:2/0/terrains_peering_bit/top_side = 0
|
||||
5:2/1 = 1
|
||||
5:2/1/flip_h = true
|
||||
5:2/1/terrain_set = 0
|
||||
5:2/1/terrain = 0
|
||||
5:2/1/probability = 0.0
|
||||
5:2/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:2/1/physics_layer_0/angular_velocity = 0.0
|
||||
5:2/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
5:2/1/terrains_peering_bit/right_side = 0
|
||||
5:2/1/terrains_peering_bit/bottom_right_corner = 0
|
||||
5:2/1/terrains_peering_bit/bottom_side = 0
|
||||
5:2/1/terrains_peering_bit/top_side = 0
|
||||
5:2/1/terrains_peering_bit/top_right_corner = 0
|
||||
6:2/next_alternative_id = 2
|
||||
6:2/0 = 0
|
||||
6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:2/1 = 1
|
||||
6:2/1/flip_h = true
|
||||
6:2/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:2/1/physics_layer_0/angular_velocity = 0.0
|
||||
2:3/next_alternative_id = 3
|
||||
2:3/0 = 0
|
||||
2:3/0/terrain_set = 0
|
||||
2:3/0/terrain = 0
|
||||
2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
2:3/0/terrains_peering_bit/right_side = 0
|
||||
2:3/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
2:3/0/terrains_peering_bit/bottom_side = 0
|
||||
2:3/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
2:3/0/terrains_peering_bit/left_side = 0
|
||||
2:3/0/terrains_peering_bit/top_left_corner = 0
|
||||
2:3/0/terrains_peering_bit/top_side = 0
|
||||
2:3/1 = 1
|
||||
2:3/1/flip_h = true
|
||||
2:3/1/terrain_set = 0
|
||||
2:3/1/terrain = 0
|
||||
2:3/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:3/1/physics_layer_0/angular_velocity = 0.0
|
||||
2:3/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
2:3/1/terrains_peering_bit/right_side = 0
|
||||
2:3/1/terrains_peering_bit/bottom_right_corner = 0
|
||||
2:3/1/terrains_peering_bit/bottom_side = 0
|
||||
2:3/1/terrains_peering_bit/bottom_left_corner = 0
|
||||
2:3/1/terrains_peering_bit/left_side = 0
|
||||
2:3/1/terrains_peering_bit/top_side = 0
|
||||
2:3/1/terrains_peering_bit/top_right_corner = 0
|
||||
3:3/0 = 0
|
||||
3:3/0/terrain_set = 0
|
||||
3:3/0/terrain = 0
|
||||
3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
3:3/0/terrains_peering_bit/right_side = 0
|
||||
3:3/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
3:3/0/terrains_peering_bit/bottom_side = 0
|
||||
3:3/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
3:3/0/terrains_peering_bit/left_side = 0
|
||||
4:3/0 = 0
|
||||
4:3/0/terrain_set = 0
|
||||
4:3/0/terrain = 0
|
||||
4:3/0/probability = 0.0
|
||||
4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
4:3/0/terrains_peering_bit/right_side = 0
|
||||
4:3/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
4:3/0/terrains_peering_bit/bottom_side = 0
|
||||
4:3/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
4:3/0/terrains_peering_bit/left_side = 0
|
||||
5:3/0 = 0
|
||||
5:3/0/terrain_set = 0
|
||||
5:3/0/terrain = 0
|
||||
5:3/0/probability = 0.25
|
||||
5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
5:3/0/terrains_peering_bit/right_side = 0
|
||||
5:3/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
5:3/0/terrains_peering_bit/bottom_side = 0
|
||||
5:3/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
5:3/0/terrains_peering_bit/left_side = 0
|
||||
|
||||
[resource]
|
||||
0/name = "ground"
|
||||
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( 0, 0 )
|
||||
0/navigation_offset = Vector2( 0, 0 )
|
||||
0/shape_offset = Vector2( 0, 0 )
|
||||
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
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, 0, 0 )
|
||||
} ]
|
||||
0/z_index = 0
|
||||
1/name = "ground_end"
|
||||
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( 0, 0 )
|
||||
1/navigation_offset = Vector2( 0, 0 )
|
||||
1/shape_offset = Vector2( 0, 0 )
|
||||
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
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, 0, 0 )
|
||||
} ]
|
||||
1/z_index = 0
|
||||
2/name = "slope"
|
||||
2/texture = ExtResource( 1 )
|
||||
2/tex_offset = Vector2( 0, 0 )
|
||||
2/modulate = Color( 1, 1, 1, 1 )
|
||||
2/region = Rect2( 64, 64, 32, 64 )
|
||||
2/tile_mode = 0
|
||||
2/occluder_offset = Vector2( 0, 0 )
|
||||
2/navigation_offset = Vector2( 0, 0 )
|
||||
2/shape_offset = Vector2( 0, 0 )
|
||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
2/shape = SubResource( 5 )
|
||||
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( 5 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
2/z_index = 0
|
||||
3/name = "wall"
|
||||
3/texture = ExtResource( 1 )
|
||||
3/tex_offset = Vector2( 0, 0 )
|
||||
3/modulate = Color( 1, 1, 1, 1 )
|
||||
3/region = Rect2( 32, 32, 32, 32 )
|
||||
3/tile_mode = 0
|
||||
3/occluder_offset = Vector2( 0, 0 )
|
||||
3/navigation_offset = Vector2( 0, 0 )
|
||||
3/shape_offset = Vector2( 0, 0 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
3/shape = SubResource( 6 )
|
||||
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( 6 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
3/z_index = 0
|
||||
4/name = "slope_top"
|
||||
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( 0, 0 )
|
||||
4/navigation_offset = Vector2( 0, 0 )
|
||||
4/shape_offset = Vector2( 0, 0 )
|
||||
4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
4/shape = SubResource( 7 )
|
||||
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( 7 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
4/z_index = 0
|
||||
5/name = "one_way"
|
||||
5/texture = ExtResource( 1 )
|
||||
5/tex_offset = Vector2( 0, 0 )
|
||||
5/modulate = Color( 1, 1, 1, 1 )
|
||||
5/region = Rect2( 64, 0, 32, 32 )
|
||||
5/tile_mode = 0
|
||||
5/occluder_offset = Vector2( 0, 0 )
|
||||
5/navigation_offset = Vector2( 0, 0 )
|
||||
5/shape_offset = Vector2( 0, 0 )
|
||||
5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
5/shape = SubResource( 8 )
|
||||
5/shape_one_way = true
|
||||
5/shape_one_way_margin = 1.0
|
||||
5/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": true,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 8 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
5/z_index = 0
|
||||
6/name = "one_way_end"
|
||||
6/texture = ExtResource( 1 )
|
||||
6/tex_offset = Vector2( 0, 0 )
|
||||
6/modulate = Color( 1, 1, 1, 1 )
|
||||
6/region = Rect2( 96, 0, 32, 32 )
|
||||
6/tile_mode = 0
|
||||
6/occluder_offset = Vector2( 0, 0 )
|
||||
6/navigation_offset = Vector2( 0, 0 )
|
||||
6/shape_offset = Vector2( 0, 0 )
|
||||
6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
6/shape = SubResource( 9 )
|
||||
6/shape_one_way = true
|
||||
6/shape_one_way_margin = 1.0
|
||||
6/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": true,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 9 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
6/z_index = 0
|
||||
7/name = "rock"
|
||||
7/texture = ExtResource( 1 )
|
||||
7/tex_offset = Vector2( 0, 0 )
|
||||
7/modulate = Color( 1, 1, 1, 1 )
|
||||
7/region = Rect2( 0, 32, 32, 32 )
|
||||
7/tile_mode = 0
|
||||
7/occluder_offset = Vector2( 0, 0 )
|
||||
7/navigation_offset = Vector2( 0, 0 )
|
||||
7/shape_offset = Vector2( 0, 0 )
|
||||
7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
7/shape = SubResource( 10 )
|
||||
7/shape_one_way = false
|
||||
7/shape_one_way_margin = 1.0
|
||||
7/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 10 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
7/z_index = 0
|
||||
8/name = "bottom"
|
||||
8/texture = ExtResource( 1 )
|
||||
8/tex_offset = Vector2( 0, 0 )
|
||||
8/modulate = Color( 1, 1, 1, 1 )
|
||||
8/region = Rect2( 192, 32, 32, 32 )
|
||||
8/tile_mode = 0
|
||||
8/occluder_offset = Vector2( 0, 0 )
|
||||
8/navigation_offset = Vector2( 0, 0 )
|
||||
8/shape_offset = Vector2( 0, 0 )
|
||||
8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
8/shape = SubResource( 11 )
|
||||
8/shape_one_way = false
|
||||
8/shape_one_way_margin = 1.0
|
||||
8/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 11 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
8/z_index = 0
|
||||
9/name = "bottom_end"
|
||||
9/texture = ExtResource( 1 )
|
||||
9/tex_offset = Vector2( 0, 0 )
|
||||
9/modulate = Color( 1, 1, 1, 1 )
|
||||
9/region = Rect2( 224, 32, 32, 32 )
|
||||
9/tile_mode = 0
|
||||
9/occluder_offset = Vector2( 0, 0 )
|
||||
9/navigation_offset = Vector2( 0, 0 )
|
||||
9/shape_offset = Vector2( 0, 0 )
|
||||
9/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
9/shape = SubResource( 12 )
|
||||
9/shape_one_way = false
|
||||
9/shape_one_way_margin = 1.0
|
||||
9/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 12 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
9/z_index = 0
|
||||
10/name = "bottom_corner"
|
||||
10/texture = ExtResource( 1 )
|
||||
10/tex_offset = Vector2( 0, 0 )
|
||||
10/modulate = Color( 1, 1, 1, 1 )
|
||||
10/region = Rect2( 160, 32, 32, 32 )
|
||||
10/tile_mode = 0
|
||||
10/occluder_offset = Vector2( 0, 0 )
|
||||
10/navigation_offset = Vector2( 0, 0 )
|
||||
10/shape_offset = Vector2( 0, 0 )
|
||||
10/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
10/shape = SubResource( 3 )
|
||||
10/shape_one_way = false
|
||||
10/shape_one_way_margin = 1.0
|
||||
10/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 3 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
10/z_index = 0
|
||||
11/name = "tree_trunk_0"
|
||||
11/texture = ExtResource( 1 )
|
||||
11/tex_offset = Vector2( 0, 0 )
|
||||
11/modulate = Color( 1, 1, 1, 1 )
|
||||
11/region = Rect2( 128, 64, 32, 32 )
|
||||
11/tile_mode = 0
|
||||
11/occluder_offset = Vector2( 0, 0 )
|
||||
11/navigation_offset = Vector2( 0, 0 )
|
||||
11/shape_offset = Vector2( 0, 0 )
|
||||
11/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
11/shape_one_way = false
|
||||
11/shape_one_way_margin = 0.0
|
||||
11/shapes = [ ]
|
||||
11/z_index = 0
|
||||
12/name = "tree_trunk_1"
|
||||
12/texture = ExtResource( 1 )
|
||||
12/tex_offset = Vector2( 0, 0 )
|
||||
12/modulate = Color( 1, 1, 1, 1 )
|
||||
12/region = Rect2( 128, 32, 32, 32 )
|
||||
12/tile_mode = 0
|
||||
12/occluder_offset = Vector2( 0, 0 )
|
||||
12/navigation_offset = Vector2( 0, 0 )
|
||||
12/shape_offset = Vector2( 0, 0 )
|
||||
12/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
12/shape_one_way = false
|
||||
12/shape_one_way_margin = 0.0
|
||||
12/shapes = [ ]
|
||||
12/z_index = 0
|
||||
13/name = "tree_base"
|
||||
13/texture = ExtResource( 1 )
|
||||
13/tex_offset = Vector2( 0, 0 )
|
||||
13/modulate = Color( 1, 1, 1, 1 )
|
||||
13/region = Rect2( 128, 96, 32, 32 )
|
||||
13/tile_mode = 0
|
||||
13/occluder_offset = Vector2( 0, 0 )
|
||||
13/navigation_offset = Vector2( 0, 0 )
|
||||
13/shape_offset = Vector2( 0, 0 )
|
||||
13/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
13/shape = SubResource( 4 )
|
||||
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( 4 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
13/z_index = 0
|
||||
14/name = "tree_top"
|
||||
14/texture = ExtResource( 1 )
|
||||
14/tex_offset = Vector2( 0, 0 )
|
||||
14/modulate = Color( 1, 1, 1, 1 )
|
||||
14/region = Rect2( 128, 0, 32, 32 )
|
||||
14/tile_mode = 0
|
||||
14/occluder_offset = Vector2( 0, 0 )
|
||||
14/navigation_offset = Vector2( 0, 0 )
|
||||
14/shape_offset = Vector2( 0, 0 )
|
||||
14/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
14/shape_one_way = false
|
||||
14/shape_one_way_margin = 0.0
|
||||
14/shapes = [ ]
|
||||
14/z_index = 0
|
||||
tile_size = Vector2i(32, 32)
|
||||
physics_layer_0/collision_layer = 16
|
||||
physics_layer_0/collision_mask = 0
|
||||
terrain_set_0/mode = 0
|
||||
terrain_set_0/terrain_0/name = "Terrain 0"
|
||||
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
|
||||
sources/1 = SubResource("TileSetAtlasSource_v5kxh")
|
||||
pattern_0 = SubResource("TileMapPattern_4pfkh")
|
||||
pattern_1 = SubResource("TileMapPattern_fatpo")
|
||||
pattern_2 = SubResource("TileMapPattern_hwg2d")
|
||||
|
||||
@@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/gBot.png-b94e4323e02d18e8c6fabf612fa396da.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,16 +1,21 @@
|
||||
class_name Player
|
||||
extends CharacterBody2D
|
||||
|
||||
# Keep this in sync with the AnimationTree's state names and numbers.
|
||||
enum States {
|
||||
IDLE = 0,
|
||||
WALK = 1,
|
||||
RUN = 2,
|
||||
FLY = 3,
|
||||
FALL = 4,
|
||||
# Keep this in sync with the AnimationTree's state names.
|
||||
const States = {
|
||||
IDLE = "idle",
|
||||
WALK = "walk",
|
||||
RUN = "run",
|
||||
FLY = "fly",
|
||||
FALL = "fall",
|
||||
}
|
||||
|
||||
var speed = Vector2(120.0, 360.0)
|
||||
const WALK_SPEED = 200.0
|
||||
const ACCELERATION_SPEED = WALK_SPEED * 6.0
|
||||
const JUMP_VELOCITY = -400.0
|
||||
## Maximum speed at which the player can fall.
|
||||
const TERMINAL_VELOCITY = 400
|
||||
|
||||
var falling_slow = false
|
||||
var falling_fast = false
|
||||
var no_move_horizontal_time = 0.0
|
||||
@@ -24,51 +29,73 @@ func _ready():
|
||||
$AnimationTree.active = true
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
velocity.y += gravity * delta
|
||||
func _physics_process(delta: float) -> void:
|
||||
var is_jumping = false
|
||||
if Input.is_action_just_pressed("jump"):
|
||||
is_jumping = try_jump()
|
||||
elif Input.is_action_just_released("jump") and velocity.y < 0.0:
|
||||
# The player let go of jump early, reduce vertical momentum.
|
||||
velocity.y *= 0.6
|
||||
# Fall.
|
||||
velocity.y = minf(TERMINAL_VELOCITY, velocity.y + gravity * delta)
|
||||
|
||||
var direction := Input.get_axis("move_left", "move_right") * WALK_SPEED
|
||||
velocity.x = move_toward(velocity.x, direction, ACCELERATION_SPEED * delta)
|
||||
|
||||
if no_move_horizontal_time > 0.0:
|
||||
# After doing a hard fall, don't move for a short time.
|
||||
velocity.x = 0.0
|
||||
no_move_horizontal_time -= delta
|
||||
else:
|
||||
velocity.x = (Input.get_axis(&"move_left", &"move_right")) * speed.x
|
||||
if Input.is_action_pressed(&"walk"):
|
||||
velocity.x *= 0.2
|
||||
# TODO: This information should be set to the CharacterBody properties instead of arguments: , Vector2.UP
|
||||
# TODO: Rename velocity to linear_velocity in the rest of the script.
|
||||
|
||||
if not is_zero_approx(velocity.x):
|
||||
if velocity.x > 0.0:
|
||||
sprite.scale.x = 1.0 * sprite_scale
|
||||
else:
|
||||
sprite.scale.x = -1.0 * sprite_scale
|
||||
|
||||
move_and_slide()
|
||||
# Calculate flipping and falling speed for animation purposes.
|
||||
if velocity.x > 0:
|
||||
sprite.transform.x = Vector2(sprite_scale, 0)
|
||||
elif velocity.x < 0:
|
||||
sprite.transform.x = Vector2(-sprite_scale, 0)
|
||||
if velocity.y > 500:
|
||||
|
||||
# After applying our motion, update our animation to match.
|
||||
|
||||
# Calculate falling speed for animation purposes.
|
||||
if velocity.y >= TERMINAL_VELOCITY:
|
||||
falling_fast = true
|
||||
falling_slow = false
|
||||
elif velocity.y > 300:
|
||||
falling_slow = true
|
||||
# Check if on floor and do mostly animation stuff based on it.
|
||||
|
||||
if is_jumping:
|
||||
$AnimationTree["parameters/jump/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
|
||||
|
||||
if is_on_floor():
|
||||
# Most animations change when we run, land, or take off.
|
||||
if falling_fast:
|
||||
$AnimationTree["parameters/land_hard/active"] = true
|
||||
$AnimationTree["parameters/land_hard/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
|
||||
no_move_horizontal_time = 0.4
|
||||
falling_fast = false
|
||||
elif falling_slow:
|
||||
$AnimationTree["parameters/land/active"] = true
|
||||
falling_slow = false
|
||||
if Input.is_action_just_pressed(&"jump"):
|
||||
$AnimationTree["parameters/jump/active"] = true
|
||||
velocity.y = -speed.y
|
||||
$AnimationTree["parameters/land/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
|
||||
|
||||
if abs(velocity.x) > 50:
|
||||
$AnimationTree["parameters/state/current"] = States.RUN
|
||||
$AnimationTree["parameters/state/transition_request"] = States.RUN
|
||||
$AnimationTree["parameters/run_timescale/scale"] = abs(velocity.x) / 60
|
||||
elif velocity.x:
|
||||
$AnimationTree["parameters/state/current"] = States.WALK
|
||||
$AnimationTree["parameters/state/transition_request"] = States.WALK
|
||||
$AnimationTree["parameters/walk_timescale/scale"] = abs(velocity.x) / 12
|
||||
else:
|
||||
$AnimationTree["parameters/state/current"] = States.IDLE
|
||||
$AnimationTree["parameters/state/transition_request"] = States.IDLE
|
||||
|
||||
falling_fast = false
|
||||
falling_slow = false
|
||||
else:
|
||||
if velocity.y > 0:
|
||||
$AnimationTree["parameters/state/current"] = States.FALL
|
||||
$AnimationTree["parameters/state/transition_request"] = States.FALL
|
||||
else:
|
||||
$AnimationTree["parameters/state/current"] = States.FLY
|
||||
$AnimationTree["parameters/state/transition_request"] = States.FLY
|
||||
|
||||
|
||||
|
||||
func try_jump() -> bool:
|
||||
if is_on_floor():
|
||||
velocity.y = JUMP_VELOCITY
|
||||
return true
|
||||
return false
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,31 +8,21 @@
|
||||
|
||||
config_version=5
|
||||
|
||||
_global_script_classes=[{
|
||||
"base": "CharacterBody2D",
|
||||
"class": &"Player",
|
||||
"language": &"GDScript",
|
||||
"path": "res://player/player.gd"
|
||||
}]
|
||||
_global_script_class_icons={
|
||||
"Player": ""
|
||||
}
|
||||
|
||||
[application]
|
||||
|
||||
config/name="Skeleton2D Demo"
|
||||
config/description="This demo shows how to create a rigged and animated character in 2D using
|
||||
Godot's Skeleton2D node. There are several movement-related animations and
|
||||
there is a simple character controller that controls the animations."
|
||||
run/main_scene="res://level.tscn"
|
||||
config/features=PackedStringArray("4.0")
|
||||
config/icon="res://icon.webp"
|
||||
config/tags=PackedStringArray("2d", "animation", "demo", "official", "rendering")
|
||||
run/main_scene="res://level.tscn"
|
||||
config/features=PackedStringArray("4.1")
|
||||
config/icon="res://icon.webp"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=1600
|
||||
window/size/viewport_height=900
|
||||
window/size/viewport_width=1920
|
||||
window/size/viewport_height=1080
|
||||
window/stretch/mode="canvas_items"
|
||||
window/stretch/aspect="keep_height"
|
||||
|
||||
@@ -40,39 +30,39 @@ window/stretch/aspect="keep_height"
|
||||
|
||||
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":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":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":65,"physical_keycode":0,"key_label":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":16777231,"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)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"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":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":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":68,"physical_keycode":0,"key_label":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":16777233,"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)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
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":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":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":16777232,"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)
|
||||
, 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(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
exit={
|
||||
"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":16777217,"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":16777217,"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)
|
||||
]
|
||||
}
|
||||
walk={
|
||||
"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":16777237,"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":16777237,"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":1,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
@@ -87,6 +77,8 @@ limits/debugger_stdout/max_chars_per_second=1000000
|
||||
|
||||
[rendering]
|
||||
|
||||
renderer/rendering_method="gl_compatibility"
|
||||
renderer/rendering_method.mobile="gl_compatibility"
|
||||
quality/driver/driver_name="GLES2"
|
||||
2d/snapping/use_gpu_pixel_snap=true
|
||||
vram_compression/import_etc=true
|
||||
|
||||
Reference in New Issue
Block a user