ATTACKING!!!!

This commit is contained in:
ToasterPanic 2026-05-09 11:38:52 -04:00
parent 2fad294d6a
commit b926f9e477
8 changed files with 906 additions and 608 deletions

View file

@ -59,6 +59,11 @@ dodge={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
]
}
attack={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(460, 10),"global_position":Vector2(469, 58),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
[physics]

View file

@ -0,0 +1,663 @@
[gd_scene format=3 uid="uid://cnii80nh1mxr2"]
[ext_resource type="Texture2D" uid="uid://dp3jbqmr5toth" path="res://textures/character-body.png" id="1_06ej8"]
[ext_resource type="Texture2D" uid="uid://3ptkafoafq14" path="res://textures/character-leg.png" id="2_54k0m"]
[ext_resource type="Texture2D" uid="uid://rgxhw23471ut" path="res://textures/character-arm.png" id="3_yptk5"]
[ext_resource type="Texture2D" uid="uid://bkthnj23dxsc4" path="res://textures/slash.png" id="4_ny5xw"]
[sub_resource type="AtlasTexture" id="AtlasTexture_vtaks"]
atlas = ExtResource("4_ny5xw")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_kvpfn"]
atlas = ExtResource("4_ny5xw")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_dinhu"]
atlas = ExtResource("4_ny5xw")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_kvuet"]
atlas = ExtResource("4_ny5xw")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_trtic"]
atlas = ExtResource("4_ny5xw")
region = Rect2(192, 0, 48, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_ir15t"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vtaks")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kvpfn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dinhu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kvuet")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_trtic")
}],
"loop": false,
"name": &"default",
"speed": 16.0
}]
[sub_resource type="Animation" id="Animation_gee14"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/BackLeg:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/FrontLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/FrontArm:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Body/ArmPivot/BackArm:position")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
[sub_resource type="Animation" id="Animation_u5sy4"]
resource_name = "fall"
length = 0.2
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/FrontLeg:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 1.134464)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -1.134464)]
}
[sub_resource type="Animation" id="Animation_p57ef"]
resource_name = "jump"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/FrontLeg:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0), Vector3(-0.065, -0.045, 0), Vector3(0.045, -0.09000015, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0.57072264), Vector3(0, 0, 0.10471976)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0), Vector3(-0.095, 0, 0), Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0), Vector3(0, 0, 0.10471976)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, -0.15, 0), Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0.06981317), Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.18),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0.08726646), Vector3(0, 0, 0.61086524), Vector3(0, 0, 0.5235988)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.18),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -0.08726646), Vector3(0, 0, -0.61086524), Vector3(0, 0, -0.5235988)]
}
[sub_resource type="Animation" id="Animation_vtaks"]
resource_name = "leap"
length = 0.2
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/FrontLeg:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.033333335),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.5235988)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.033333335),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -0.5235988)]
}
[sub_resource type="Animation" id="Animation_0tnpc"]
resource_name = "move"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/BackLeg:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -0.34906584), Vector3(0, 0, 0.34906584), Vector3(0, 0, -0.34906584)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0.34906584), Vector3(0, 0, -0.34906584), Vector3(0, 0, 0.34906584)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -0.17453292), Vector3(0, 0, 0.17453292), Vector3(0, 0, -0.17453292)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0.17453292), Vector3(0, 0, -0.17453292), Vector3(0, 0, 0.17453292)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vtaks"]
_data = {
&"RESET": SubResource("Animation_gee14"),
&"fall": SubResource("Animation_u5sy4"),
&"jump": SubResource("Animation_p57ef"),
&"leap": SubResource("Animation_vtaks"),
&"move": SubResource("Animation_0tnpc")
}
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vtaks"]
animation = &"leap"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p57ef"]
animation = &"jump"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_gee14"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u5sy4"]
animation = &"fall"
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_u5sy4"]
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kvpfn"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gee14"]
animation = &"move"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0tnpc"]
animation = &"RESET"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vtaks"]
[sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_p57ef"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_kvpfn"]
graph_offset = Vector2(-228.28757, 27.085762)
nodes/output/position = Vector2(1140, 140)
nodes/jump/node = SubResource("AnimationNodeOneShot_u5sy4")
nodes/jump/position = Vector2(860, 140)
nodes/reset/node = SubResource("AnimationNodeAnimation_0tnpc")
nodes/reset/position = Vector2(60, 20)
nodes/move/node = SubResource("AnimationNodeAnimation_gee14")
nodes/move/position = Vector2(-80, 220)
nodes/walk/node = SubResource("AnimationNodeBlend2_vtaks")
nodes/walk/position = Vector2(240, 80)
nodes/Animation/node = SubResource("AnimationNodeAnimation_p57ef")
nodes/Animation/position = Vector2(680, 420)
nodes/walk_speed/node = SubResource("AnimationNodeTimeScale_p57ef")
nodes/walk_speed/position = Vector2(80, 220)
nodes/fall/node = SubResource("AnimationNodeBlend2_gee14")
nodes/fall/position = Vector2(480, 100)
nodes/fall_anim/node = SubResource("AnimationNodeAnimation_u5sy4")
nodes/fall_anim/position = Vector2(260, 400)
"nodes/Animation 2/node" = SubResource("AnimationNodeAnimation_vtaks")
"nodes/Animation 2/position" = Vector2(480, 420)
nodes/leap/node = SubResource("AnimationNodeBlend2_kvpfn")
nodes/leap/position = Vector2(670.4032, 137.15503)
node_connections = [&"output", 0, &"jump", &"jump", 0, &"leap", &"jump", 1, &"Animation", &"walk", 0, &"reset", &"walk", 1, &"walk_speed", &"walk_speed", 0, &"move", &"fall", 0, &"walk", &"fall", 1, &"fall_anim", &"leap", 0, &"fall", &"leap", 1, &"Animation 2"]
[node name="DreamerBody" type="Node3D" unique_id=723408850]
[node name="Body" type="Sprite3D" parent="." unique_id=318419732]
pixel_size = 0.03
texture_filter = 0
render_priority = 2
texture = ExtResource("1_06ej8")
[node name="FrontLeg" type="Sprite3D" parent="Body" unique_id=289058799]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.045, -0.09000015, 0)
offset = Vector2(-0.5, -10)
pixel_size = 0.03
texture_filter = 0
render_priority = 1
texture = ExtResource("2_54k0m")
[node name="BackLeg" type="Sprite3D" parent="Body" unique_id=1402882774]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.044999994, -0.09000015, 0)
offset = Vector2(-0.5, -10)
pixel_size = 0.03
texture_filter = 0
texture = ExtResource("2_54k0m")
[node name="ArmPivot" type="Node3D" parent="Body" unique_id=935537735]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1500001, 0)
[node name="FrontArm" type="Sprite3D" parent="Body/ArmPivot" unique_id=1602877548]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.089999996, 0, 0)
offset = Vector2(0, -6)
pixel_size = 0.03
texture_filter = 0
render_priority = 6
texture = ExtResource("3_yptk5")
[node name="BackArm" type="Sprite3D" parent="Body/ArmPivot" unique_id=111008142]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.089999996, 0, 0)
offset = Vector2(0, -6)
pixel_size = 0.03
texture_filter = 0
render_priority = -1
texture = ExtResource("3_yptk5")
[node name="Slash" type="AnimatedSprite3D" parent="Body/ArmPivot" unique_id=387297010]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, -0.1500001, 0)
pixel_size = 0.04
no_depth_test = true
texture_filter = 0
render_priority = 99
sprite_frames = SubResource("SpriteFrames_ir15t")
frame = 4
frame_progress = 1.0
[node name="Animations" type="AnimationPlayer" parent="." unique_id=705651586]
libraries/ = SubResource("AnimationLibrary_vtaks")
[node name="Animator" type="AnimationTree" parent="." unique_id=790879242]
tree_root = SubResource("AnimationNodeBlendTree_kvpfn")
anim_player = NodePath("../Animations")
parameters/jump/active = false
parameters/jump/internal_active = false
parameters/jump/request = 0
parameters/walk/blend_amount = 0.0
parameters/walk_speed/scale = 3.140000000000001
parameters/fall/blend_amount = 0.0
parameters/leap/blend_amount = 0.0

View file

@ -3,11 +3,10 @@
[ext_resource type="Script" uid="uid://dhfun46prq3uk" path="res://scripts/game.gd" id="1_gee14"]
[ext_resource type="Script" uid="uid://crf3d7dpjvlsl" path="res://scripts/player_camera.gd" id="1_lnu2h"]
[ext_resource type="Script" uid="uid://66iq60cxqomg" path="res://scripts/player.gd" id="1_yqjtg"]
[ext_resource type="Texture2D" uid="uid://dp3jbqmr5toth" path="res://textures/character-body.png" id="3_p57ef"]
[ext_resource type="Texture2D" uid="uid://b6krbvbco0jt6" path="res://textures/shadow.png" id="4_lbhrr"]
[ext_resource type="Texture2D" uid="uid://3ptkafoafq14" path="res://textures/character-leg.png" id="4_u5sy4"]
[ext_resource type="PackedScene" uid="uid://cnii80nh1mxr2" path="res://scenes/assets/dreamer_body.tscn" id="4_p57ef"]
[ext_resource type="PackedScene" uid="uid://b0kty7juk7rfo" path="res://models/stalagmite.gltf" id="5_iywne"]
[ext_resource type="Texture2D" uid="uid://rgxhw23471ut" path="res://textures/character-arm.png" id="5_u5sy4"]
[ext_resource type="Script" uid="uid://ddhrcj4ljm446" path="res://scripts/test_enemy.gd" id="6_u5sy4"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lbhrr"]
albedo_color = Color(0.61, 0.28791997, 0.17079999, 1)
@ -16,553 +15,8 @@ albedo_color = Color(0.61, 0.28791997, 0.17079999, 1)
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_yqjtg"]
[sub_resource type="Animation" id="Animation_gee14"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/BackLeg:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/FrontLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/FrontArm:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Body/ArmPivot/BackArm:position")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
[sub_resource type="Animation" id="Animation_u5sy4"]
resource_name = "fall"
length = 0.2
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/FrontLeg:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 1.134464)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -1.134464)]
}
[sub_resource type="Animation" id="Animation_p57ef"]
resource_name = "jump"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/FrontLeg:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0), Vector3(-0.065, -0.045, 0), Vector3(0.045, -0.09000015, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0.57072264), Vector3(0, 0, 0.10471976)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0), Vector3(-0.095, 0, 0), Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0), Vector3(0, 0, 0.10471976)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, -0.15, 0), Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.15),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0.06981317), Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.18),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0.08726646), Vector3(0, 0, 0.61086524), Vector3(0, 0, 0.5235988)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.18),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -0.08726646), Vector3(0, 0, -0.61086524), Vector3(0, 0, -0.5235988)]
}
[sub_resource type="Animation" id="Animation_vtaks"]
resource_name = "leap"
length = 0.2
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/FrontLeg:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.045, -0.09000015, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(-0.044999994, -0.09000015, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/BackLeg:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.10471976)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Body:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.0033333339),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.033333335),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0.5235988)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.033333335),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -0.5235988)]
}
[sub_resource type="Animation" id="Animation_0tnpc"]
resource_name = "move"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/BackLeg:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -0.34906584), Vector3(0, 0, 0.34906584), Vector3(0, 0, -0.34906584)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/FrontLeg:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0.34906584), Vector3(0, 0, -0.34906584), Vector3(0, 0, 0.34906584)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -0.17453292), Vector3(0, 0, 0.17453292), Vector3(0, 0, -0.17453292)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0.17453292), Vector3(0, 0, -0.17453292), Vector3(0, 0, 0.17453292)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Body:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vtaks"]
_data = {
&"RESET": SubResource("Animation_gee14"),
&"fall": SubResource("Animation_u5sy4"),
&"jump": SubResource("Animation_p57ef"),
&"leap": SubResource("Animation_vtaks"),
&"move": SubResource("Animation_0tnpc")
}
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vtaks"]
animation = &"leap"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p57ef"]
animation = &"jump"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_gee14"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u5sy4"]
animation = &"fall"
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_u5sy4"]
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kvpfn"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gee14"]
animation = &"move"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0tnpc"]
animation = &"RESET"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vtaks"]
[sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_p57ef"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_kvpfn"]
graph_offset = Vector2(-228.28757, 27.085762)
nodes/output/position = Vector2(1140, 140)
nodes/jump/node = SubResource("AnimationNodeOneShot_u5sy4")
nodes/jump/position = Vector2(860, 140)
nodes/reset/node = SubResource("AnimationNodeAnimation_0tnpc")
nodes/reset/position = Vector2(60, 20)
nodes/move/node = SubResource("AnimationNodeAnimation_gee14")
nodes/move/position = Vector2(-80, 220)
nodes/walk/node = SubResource("AnimationNodeBlend2_vtaks")
nodes/walk/position = Vector2(240, 80)
nodes/Animation/node = SubResource("AnimationNodeAnimation_p57ef")
nodes/Animation/position = Vector2(680, 420)
nodes/walk_speed/node = SubResource("AnimationNodeTimeScale_p57ef")
nodes/walk_speed/position = Vector2(80, 220)
nodes/fall/node = SubResource("AnimationNodeBlend2_gee14")
nodes/fall/position = Vector2(480, 100)
nodes/fall_anim/node = SubResource("AnimationNodeAnimation_u5sy4")
nodes/fall_anim/position = Vector2(260, 400)
"nodes/Animation 2/node" = SubResource("AnimationNodeAnimation_vtaks")
"nodes/Animation 2/position" = Vector2(480, 420)
nodes/leap/node = SubResource("AnimationNodeBlend2_kvpfn")
nodes/leap/position = Vector2(670.4032, 137.15503)
node_connections = [&"output", 0, &"jump", &"jump", 0, &"leap", &"jump", 1, &"Animation", &"walk", 0, &"reset", &"walk", 1, &"walk_speed", &"walk_speed", 0, &"move", &"fall", 0, &"walk", &"fall", 1, &"fall_anim", &"leap", 0, &"fall", &"leap", 1, &"Animation 2"]
[sub_resource type="BoxShape3D" id="BoxShape3D_0tnpc"]
size = Vector3(1, 1, 1.3)
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_yqjtg"]
radius = 0.25
@ -587,61 +41,14 @@ script = ExtResource("1_lnu2h")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
script = ExtResource("1_yqjtg")
[node name="DreamerBody" type="Node3D" parent="Player" unique_id=827683712]
[node name="Body" type="Sprite3D" parent="Player/DreamerBody" unique_id=2055611556]
pixel_size = 0.03
texture_filter = 0
render_priority = 2
texture = ExtResource("3_p57ef")
[node name="FrontLeg" type="Sprite3D" parent="Player/DreamerBody/Body" unique_id=1282701626]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.045, -0.09000015, 0)
offset = Vector2(-0.5, -10)
pixel_size = 0.03
texture_filter = 0
render_priority = 1
texture = ExtResource("4_u5sy4")
[node name="BackLeg" type="Sprite3D" parent="Player/DreamerBody/Body" unique_id=1621844440]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.044999994, -0.09000015, 0)
offset = Vector2(-0.5, -10)
pixel_size = 0.03
texture_filter = 0
texture = ExtResource("4_u5sy4")
[node name="ArmPivot" type="Node3D" parent="Player/DreamerBody/Body" unique_id=101320487]
[node name="HitCollision" type="Area3D" parent="Player" unique_id=1708789602]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1500001, 0)
[node name="FrontArm" type="Sprite3D" parent="Player/DreamerBody/Body/ArmPivot" unique_id=1454211664]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.089999996, 0, 0)
offset = Vector2(0, -6)
pixel_size = 0.03
texture_filter = 0
render_priority = 6
texture = ExtResource("5_u5sy4")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Player/HitCollision" unique_id=653786925]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 0, 0)
shape = SubResource("BoxShape3D_0tnpc")
[node name="BackArm" type="Sprite3D" parent="Player/DreamerBody/Body/ArmPivot" unique_id=1463191879]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.089999996, 0, 0)
offset = Vector2(0, -6)
pixel_size = 0.03
texture_filter = 0
render_priority = -1
texture = ExtResource("5_u5sy4")
[node name="Animations" type="AnimationPlayer" parent="Player/DreamerBody" unique_id=708762765]
libraries/ = SubResource("AnimationLibrary_vtaks")
[node name="Animator" type="AnimationTree" parent="Player/DreamerBody" unique_id=794846221]
tree_root = SubResource("AnimationNodeBlendTree_kvpfn")
anim_player = NodePath("../Animations")
parameters/jump/active = false
parameters/jump/internal_active = false
parameters/jump/request = 0
parameters/walk/blend_amount = 0.0
parameters/walk_speed/scale = 3.1400000000000006
parameters/fall/blend_amount = 0.0
parameters/leap/blend_amount = 0.0
[node name="DreamerBody" parent="Player" unique_id=723408850 instance=ExtResource("4_p57ef")]
[node name="Shadow" type="Sprite3D" parent="Player" unique_id=495232250]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)
@ -657,6 +64,39 @@ shape = SubResource("CapsuleShape3D_yqjtg")
[node name="Floorcast" type="RayCast3D" parent="Player" unique_id=991770843]
target_position = Vector3(0, -16, 0)
[node name="EnemyTest" type="CharacterBody3D" parent="." unique_id=109591127]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 3, 0)
script = ExtResource("6_u5sy4")
[node name="HitCollision" type="Area3D" parent="EnemyTest" unique_id=736307848]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1500001, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="EnemyTest/HitCollision" unique_id=1336116220]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 0, 0)
shape = SubResource("BoxShape3D_0tnpc")
[node name="DreamerBody" parent="EnemyTest" unique_id=780505789 instance=ExtResource("4_p57ef")]
[node name="Shadow" type="Sprite3D" parent="EnemyTest" unique_id=521501658]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)
modulate = Color(1, 1, 1, 0.5764706)
pixel_size = 0.03
axis = 1
texture_filter = 0
texture = ExtResource("4_lbhrr")
[node name="Collision" type="CollisionShape3D" parent="EnemyTest" unique_id=1794588893]
shape = SubResource("CapsuleShape3D_yqjtg")
[node name="Floorcast" type="RayCast3D" parent="EnemyTest" unique_id=1411083951]
target_position = Vector3(0, -16, 0)
[node name="HealthLabel" type="Label3D" parent="EnemyTest" unique_id=1869384013]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8399999, 0)
pixel_size = 0.01
billboard = 1
text = "hello!"
[node name="Sun" type="DirectionalLight3D" parent="." unique_id=1000747668]
transform = Transform3D(5.337265e-08, 0.90171933, -0.4323222, -0.3453802, 0.40571806, 0.8462301, 0.93846303, 0.14931537, 0.31143594, 0, 0, 0)
shadow_enabled = true

View file

@ -7,6 +7,8 @@ var walk_animation_time = 0
var face_rotation = null
var face_left = false
var combatable = true
@onready var game = get_parent()
@onready var camera = game.get_node("PlayerCamera")
@ -19,25 +21,59 @@ func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity += get_gravity() * delta
var viewport_size = (get_viewport().get_visible_rect().size / 2.0)
var viewport_half = (get_viewport().get_visible_rect().size / 2.0)
var player_position = camera.unproject_position(global_transform.origin)
print(viewport_half)
print(player_position)
if face_left:
$DreamerBody.rotation.y = face_rotation + deg_to_rad(180)
else:
$DreamerBody.rotation.y = face_rotation
#$DreamerBody/Body/ArmPivot.rotation.z = viewport_size.angle_to_point(get_viewport().get_mouse_position())
if combatable:
$DreamerBody/Body/ArmPivot.rotation.z = player_position.angle_to_point(get_viewport().get_mouse_position())
$HitCollision.rotation.y = -$DreamerBody/Body/ArmPivot.rotation.z + face_rotation
if ($DreamerBody/Body/ArmPivot.rotation_degrees.z < -90) or ($DreamerBody/Body/ArmPivot.rotation_degrees.z > 90):
face_left = true
$DreamerBody/Body/ArmPivot.scale.y = -1
$DreamerBody/Body/ArmPivot.scale.x = -1
var mouse_pos = get_viewport().get_mouse_position()
mouse_pos.y = (viewport_half.y) + ((viewport_half.y) - mouse_pos.y)
$DreamerBody/Body/ArmPivot.rotation.z = viewport_half.angle_to_point(mouse_pos)
else:
face_left = false
$DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1
else:
$DreamerBody/Body/ArmPivot.global_rotation.y = face_rotation
$DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1
$DreamerBody/Body/ArmPivot.rotation.z = 0
if Input.is_action_pressed("jump") and is_on_floor():
velocity.y = JUMP_VELOCITY
$DreamerBody/Animator.set("parameters/jump/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
var input_dir := Input.get_vector("move_left", "move_right", "move_up", "move_down")
if not combatable:
if input_dir.x > 0:
face_left = false
if input_dir.x < 0:
face_left = true
if Input.is_action_just_pressed("attack"):
$DreamerBody/Body/ArmPivot/Slash.play("default")
var hits = $HitCollision.get_overlapping_bodies()
for body in hits:
if "health" in body:
body.health -= 10
var direction = (camera.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * SPEED

112
scripts/test_enemy.gd Normal file
View file

@ -0,0 +1,112 @@
extends CharacterBody3D
const SPEED = 2.5
const JUMP_VELOCITY = 4.5
var walk_animation_time = 0
var face_rotation = null
var face_left = false
var combatable = false
var health = 100
@onready var game = get_parent()
@onready var camera = game.get_node("PlayerCamera")
func _ready() -> void:
$DreamerBody.look_at(game.get_node("PlayerCamera").global_position)
$DreamerBody.rotation.x = 0
face_rotation = $DreamerBody.rotation.y
func _physics_process(delta: float) -> void:
$HealthLabel.text = str(health)
if not is_on_floor():
velocity += get_gravity() * delta
var viewport_half = (get_viewport().get_visible_rect().size / 2.0)
var player_position = camera.unproject_position(global_transform.origin)
print(viewport_half)
print(player_position)
if face_left:
$DreamerBody.rotation.y = face_rotation + deg_to_rad(180)
else:
$DreamerBody.rotation.y = face_rotation
if combatable:
$DreamerBody/Body/ArmPivot.rotation.z = player_position.angle_to_point(get_viewport().get_mouse_position())
$HitCollision.rotation.y = -$DreamerBody/Body/ArmPivot.rotation.z + face_rotation
if ($DreamerBody/Body/ArmPivot.rotation_degrees.z < -90) or ($DreamerBody/Body/ArmPivot.rotation_degrees.z > 90):
face_left = true
$DreamerBody/Body/ArmPivot.scale.y = -1
$DreamerBody/Body/ArmPivot.scale.x = -1
var mouse_pos = get_viewport().get_mouse_position()
mouse_pos.y = (viewport_half.y) + ((viewport_half.y) - mouse_pos.y)
$DreamerBody/Body/ArmPivot.rotation.z = viewport_half.angle_to_point(mouse_pos)
else:
face_left = false
$DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1
else:
$DreamerBody/Body/ArmPivot.global_rotation.y = face_rotation
$DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1
$DreamerBody/Body/ArmPivot.rotation.z = 0
if Input.is_action_pressed("jump") and is_on_floor():
velocity.y = JUMP_VELOCITY
$DreamerBody/Animator.set("parameters/jump/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
var input_dir := Vector2.ZERO
if not combatable:
if input_dir.x > 0:
face_left = false
if input_dir.x < 0:
face_left = true
var direction = (camera.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
$DreamerBody/Animator.set("parameters/walk/blend_amount", abs(direction.length()))
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
velocity.z = move_toward(velocity.z, 0, SPEED)
$DreamerBody/Animator.set("parameters/walk/blend_amount", 0)
if direction and is_on_floor():
walk_animation_time += delta * 25
$DreamerBody.position.y = sin(walk_animation_time + 1) / 16
$DreamerBody.rotation.z = sin(walk_animation_time / 2) / 16
else:
walk_animation_time = 0
$DreamerBody.rotation.z /= 1 + (delta * 2.5)
$DreamerBody.position.y /= 1 + (delta * 12)
if is_on_floor():
$DreamerBody/Animator.set("parameters/fall/blend_amount", 0)
$DreamerBody/Animator.set("parameters/leap/blend_amount", 0)
else:
if velocity.y < 0:
$DreamerBody/Animator.set("parameters/fall/blend_amount", 1)
$DreamerBody/Animator.set("parameters/leap/blend_amount", 0)
else:
$DreamerBody/Animator.set("parameters/fall/blend_amount", 0)
$DreamerBody/Animator.set("parameters/leap/blend_amount", 1)
move_and_slide()
$Shadow.global_position.y = $Floorcast.get_collision_point().y + 0.01

View file

@ -0,0 +1 @@
uid://ddhrcj4ljm446

BIN
textures/slash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

41
textures/slash.png.import Normal file
View file

@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bkthnj23dxsc4"
path.s3tc="res://.godot/imported/slash.png-e23c894fa813106ce16c6a50f1a8c384.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/slash.png"
dest_files=["res://.godot/imported/slash.png-e23c894fa813106ce16c6a50f1a8c384.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0