[gd_scene load_steps=10 format=3] [ext_resource type="Script" path="res://scenes/characters/player.gd" id="1_player_script"] [ext_resource type="Texture2D" path="res://assets/art/characters/jump.png" id="2_jump_texture"] [ext_resource type="Texture2D" path="res://assets/art/characters/katana_attack_sheathe.png" id="3_slash_texture"] [ext_resource type="Texture2D" path="res://assets/art/characters/player_idle.png" id="4_idle_texture"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_player"] size = Vector2(16, 36) [sub_resource type="Animation" id="Animation_idle"] resource_name = "idle" length = 1.0 loop_mode = 1 step = 0.1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("4_idle_texture")] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [10] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [1] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("CharacterSprite:offset") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [Vector2(-24, -40)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("CharacterSprite:frame") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] } [sub_resource type="Animation" id="Animation_jump"] resource_name = "jump" length = 0.36 loop_mode = 1 step = 0.06 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("2_jump_texture")] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [6] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [1] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("CharacterSprite:offset") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [Vector2(-24, -44)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("CharacterSprite:frame") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.06, 0.12, 0.18, 0.24, 0.3), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4, 5] } [sub_resource type="Animation" id="Animation_slash"] resource_name = "挥砍" length = 0.4 step = 0.04 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("3_slash_texture")] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [10] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [1] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("CharacterSprite:offset") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [Vector2(-40, -48)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("CharacterSprite:frame") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_player"] _data = { "idle": SubResource("Animation_idle"), "jump": SubResource("Animation_jump"), "挥砍": SubResource("Animation_slash") } [node name="Player" type="CharacterBody2D"] collision_layer = 2 collision_mask = 1 safe_margin = 0.001 floor_snap_length = 0.0 scale = Vector2(4, 4) script = ExtResource("1_player_script") speed = 180.0 jump_intensity = 304.056 attack_duration = 0.4 attack_lunge_duration = 0.18 attack_lunge_speed = 220.0 [node name="CharacterSprite" type="Sprite2D" parent="."] texture = ExtResource("4_idle_texture") centered = false offset = Vector2(-24, -40) hframes = 10 vframes = 1 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, -18) shape = SubResource("RectangleShape2D_player") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { "": SubResource("AnimationLibrary_player") } autoplay = "idle" [node name="Camera2D" type="Camera2D" parent="."] position = Vector2(0, -37.5) scale = Vector2(0.25, 0.25) zoom = Vector2(1.5, 1.5) enabled = true