Update 2D Skeleton demo for Godot 4.1 (#976)

This commit is contained in:
David Briscoe
2023-10-24 19:42:32 -07:00
committed by GitHub
parent 851862f8db
commit 757cc4261c
16 changed files with 916 additions and 1631 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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

View File

@@ -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