Add the ChangeSkin func

This commit is contained in:
Lucas Peter 2024-07-23 11:41:26 +02:00
parent 7417dcfade
commit 1c250dde73
No known key found for this signature in database
3 changed files with 50 additions and 20 deletions

View file

@ -1,12 +1,32 @@
extends CharacterBody2D extends CharacterBody2D
@export_group("Skins")
@export var CurrentSkin: CanvasTexture
@export var CurrentHat: CanvasTexture
const SPEED = 700.0 const SPEED = 700.0
# Change the skin on every sprite
func changeSkin(NewSkin:CanvasTexture,_NewHat:CanvasTexture = null):
CurrentSkin = NewSkin
if (_NewHat):
CurrentHat = _NewHat
for Sprite :Sprite2D in $Skeleton2D.get_children():
if (Sprite.has_meta("Type") and Sprite.get_meta("Type") == "Skin"):
Sprite.texture = CurrentSkin
if (Sprite.has_meta("Type") and Sprite.get_meta("Type") == "Hat"):
Sprite.texture = CurrentHat
func get_input(): func get_input():
var directionX = Input.get_axis("move_left", "move_right") var directionX = Input.get_axis("move_left", "move_right")
var directionY = Input.get_axis("move_up", "move_down") var directionY = Input.get_axis("move_up", "move_down")
# Get the input direction and handle the movement/deceleration. #region Movement
## Get the input direction and handle the movement/deceleration.
if directionX : if directionX :
velocity.x = directionX * SPEED velocity.x = directionX * SPEED
else: else:
@ -15,7 +35,7 @@ func get_input():
velocity.y = directionY * SPEED velocity.y = directionY * SPEED
else: else:
velocity.y = move_toward(velocity.y, 0, SPEED) velocity.y = move_toward(velocity.y, 0, SPEED)
#endregion
#region Animation #region Animation
if (directionX < 0): if (directionX < 0):
$Skeleton2D/root/Hips.set_scale(Vector2(1, 1)) $Skeleton2D/root/Hips.set_scale(Vector2(1, 1))

View file

@ -458,9 +458,9 @@ animation = &"Walk"
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_p4347"] [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_p4347"]
graph_offset = Vector2(-455.578, -2.44228) graph_offset = Vector2(-455.578, -2.44228)
nodes/Animation/node = SubResource("AnimationNodeAnimation_17l2l") nodes/Animation/node = SubResource("AnimationNodeAnimation_17l2l")
nodes/Animation/position = Vector2(-160, 140) nodes/Animation/position = Vector2(0, 120)
nodes/TimeScale/node = SubResource("AnimationNodeTimeScale_66x5k") nodes/TimeScale/node = SubResource("AnimationNodeTimeScale_66x5k")
nodes/TimeScale/position = Vector2(60, 120) nodes/TimeScale/position = Vector2(140, 120)
nodes/output/position = Vector2(280, 120) nodes/output/position = Vector2(280, 120)
node_connections = [&"TimeScale", 0, &"Animation", &"output", 0, &"TimeScale"] node_connections = [&"TimeScale", 0, &"Animation", &"output", 0, &"TimeScale"]
@ -478,7 +478,6 @@ value_label = "speed"
sync = true sync = true
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_wgp38"] [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_wgp38"]
graph_offset = Vector2(-55.7817, 106.547)
nodes/WalkRun/node = SubResource("AnimationNodeBlendSpace1D_c82tj") nodes/WalkRun/node = SubResource("AnimationNodeBlendSpace1D_c82tj")
nodes/WalkRun/position = Vector2(180, 120) nodes/WalkRun/position = Vector2(180, 120)
nodes/output/position = Vector2(440, 120) nodes/output/position = Vector2(440, 120)
@ -489,6 +488,8 @@ diffuse_texture = ExtResource("4_ytgpb")
[node name="Node2D" type="CharacterBody2D"] [node name="Node2D" type="CharacterBody2D"]
script = ExtResource("1_0pgv8") script = ExtResource("1_0pgv8")
CurrentSkin = ExtResource("2_45h8h")
CurrentHat = ExtResource("3_qyf3b")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -75) position = Vector2(0, -75)
@ -513,62 +514,70 @@ playback_default_blend_time = 0.3
[node name="AnimationTree" type="AnimationTree" parent="." groups=["Animation"]] [node name="AnimationTree" type="AnimationTree" parent="." groups=["Animation"]]
tree_root = SubResource("AnimationNodeBlendTree_wgp38") tree_root = SubResource("AnimationNodeBlendTree_wgp38")
anim_player = NodePath("../AnimationPlayer") anim_player = NodePath("../AnimationPlayer")
parameters/WalkRun/blend_position = 624.221 parameters/WalkRun/blend_position = 178.271
parameters/WalkRun/2/TimeScale/scale = 1.8 parameters/WalkRun/2/TimeScale/scale = 1.8
[node name="Skeleton2D" type="Skeleton2D" parent="."] [node name="Skeleton2D" type="Skeleton2D" parent="."]
position = Vector2(17, 0) position = Vector2(17, 0)
[node name="BootL" type="Sprite2D" parent="Skeleton2D"] [node name="BootL" type="Sprite2D" parent="Skeleton2D"]
position = Vector2(41.976, -40.999) position = Vector2(-5.61248, -38.9448)
rotation = -0.525599 rotation = 0.142016
texture = ExtResource("2_45h8h")
region_enabled = true region_enabled = true
region_rect = Rect2(896, 768, 128, 128) region_rect = Rect2(896, 768, 128, 128)
metadata/Type = "Skin"
[node name="BootR" type="Sprite2D" parent="Skeleton2D"] [node name="BootR" type="Sprite2D" parent="Skeleton2D"]
position = Vector2(-70.9803, -47.9988) position = Vector2(-31.9509, -45.6022)
rotation = 0.491578 rotation = -0.232808
scale = Vector2(1, 1)
texture = ExtResource("2_45h8h") texture = ExtResource("2_45h8h")
region_enabled = true region_enabled = true
region_rect = Rect2(896, 768, 128, 128) region_rect = Rect2(896, 768, 128, 128)
metadata/Type = "Skin"
[node name="Body" type="Sprite2D" parent="Skeleton2D"] [node name="Body" type="Sprite2D" parent="Skeleton2D"]
position = Vector2(51, -242.428) position = Vector2(51, -229.397)
texture = ExtResource("2_45h8h") texture = ExtResource("2_45h8h")
offset = Vector2(-15, 0) offset = Vector2(-15, 0)
region_enabled = true region_enabled = true
region_rect = Rect2(0, 640, 384, 384) region_rect = Rect2(0, 640, 384, 384)
metadata/Type = "Skin"
[node name="HandL" type="Sprite2D" parent="Skeleton2D/Body"] [node name="HandL" type="Sprite2D" parent="Skeleton2D/Body"]
position = Vector2(-3, 54) position = Vector2(-20.1603, 51.5819)
texture = ExtResource("2_45h8h") texture = ExtResource("2_45h8h")
region_enabled = true region_enabled = true
region_rect = Rect2(768, 768, 128, 128) region_rect = Rect2(768, 768, 128, 128)
metadata/Type = "Skin"
[node name="HandR" type="Sprite2D" parent="Skeleton2D/Body"] [node name="HandR" type="Sprite2D" parent="Skeleton2D/Body"]
show_behind_parent = true show_behind_parent = true
position = Vector2(-160, 29) position = Vector2(-154.264, 30.3642)
texture = ExtResource("2_45h8h") texture = ExtResource("2_45h8h")
region_enabled = true region_enabled = true
region_rect = Rect2(768, 768, 128, 128) region_rect = Rect2(768, 768, 128, 128)
metadata/Type = "Skin"
[node name="Tail" type="Sprite2D" parent="Skeleton2D/Body"] [node name="Tail" type="Sprite2D" parent="Skeleton2D/Body"]
show_behind_parent = true show_behind_parent = true
position = Vector2(44, 112.428) position = Vector2(44, 99.3973)
rotation = 0.153589 rotation = -0.090184
scale = Vector2(1, 1)
texture = ExtResource("2_45h8h") texture = ExtResource("2_45h8h")
offset = Vector2(70, 0) offset = Vector2(70, 0)
region_enabled = true region_enabled = true
region_rect = Rect2(768, 640, 256, 128) region_rect = Rect2(768, 640, 256, 128)
metadata/Type = "Skin"
[node name="Head" type="Sprite2D" parent="Skeleton2D"] [node name="Head" type="Sprite2D" parent="Skeleton2D"]
position = Vector2(-40, -415.428) position = Vector2(-40, -402.397)
rotation = 1.31553e-05 rotation = 0.0243178
texture = ExtResource("2_45h8h") texture = ExtResource("2_45h8h")
offset = Vector2(0, -168) offset = Vector2(0, -168)
region_enabled = true region_enabled = true
region_rect = Rect2(0, 0, 512, 640) region_rect = Rect2(0, 0, 512, 640)
metadata/Type = "Skin"
[node name="Hat" type="Sprite2D" parent="Skeleton2D/Head"] [node name="Hat" type="Sprite2D" parent="Skeleton2D/Head"]
position = Vector2(65, -103) position = Vector2(65, -103)
@ -576,6 +585,7 @@ scale = Vector2(0.6, 0.6)
texture = ExtResource("3_qyf3b") texture = ExtResource("3_qyf3b")
region_enabled = true region_enabled = true
region_rect = Rect2(0, 0, 1152, 1136) region_rect = Rect2(0, 0, 1152, 1136)
metadata/Type = "Hat"
[node name="root" type="Bone2D" parent="Skeleton2D"] [node name="root" type="Bone2D" parent="Skeleton2D"]
position = Vector2(-17, 0) position = Vector2(-17, 0)

View file

@ -1,6 +1,6 @@
[gd_resource type="CanvasTexture" load_steps=2 format=3 uid="uid://5qixrbrclydr"] [gd_resource type="CanvasTexture" load_steps=2 format=3 uid="uid://5qixrbrclydr"]
[ext_resource type="Texture2D" uid="uid://0m4sejstlmy7" path="res://extracted/Texture2D/Hat Glasses.png" id="1_ogipp"] [ext_resource type="Texture2D" uid="uid://hc35pmqglb14" path="res://extracted/Texture2D/Whitch Hat.png" id="1_dwxnm"]
[resource] [resource]
diffuse_texture = ExtResource("1_ogipp") diffuse_texture = ExtResource("1_dwxnm")