From 632643a1304ccaf59fc538de24f5fb21ce9a2855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Thu, 21 Aug 2025 00:58:58 +0200 Subject: [PATCH] game: use shader for enemy on-hit visual --- animation/generic_anims.res | Bin 617 -> 658 bytes assets/shaders/hit_flash.gdshader | 8 ++++++++ assets/shaders/hit_flash.gdshader.uid | 1 + scenes/enemies/enemy_base.gd | 2 ++ scenes/enemies/enemy_base.tscn | 20 +++++++++++++++++++- 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 assets/shaders/hit_flash.gdshader create mode 100644 assets/shaders/hit_flash.gdshader.uid diff --git a/animation/generic_anims.res b/animation/generic_anims.res index 8734ec295b97af144f39c79b3955ee5ccdcfad72..b990b81870ecbfbdf3e90cc36f0e2d086c891e68 100644 GIT binary patch literal 658 zcmV;D0&V?LQ$s@n000005C8y-1^@th0ssIgwJ-f(j0J@g0Ja)gJwR=f4y$bq@u`xgIt>wT?^9N(c$rG`|AIShysg{nCKg|tQDT^|-B^PB$M}!n8#-i|gh+ux z#Q(}YtQ^ubFt*m$poRaJ{}+}&ZR0CF9Yu&{XDRpO?XbT80nV09Zo#IOr^kiQ&LhQd8m=KLNr1&B?T!p2XF$J86x!( zz%?Praz;8cfrvzrq7;==a17>125@*DfLJ>uf;OX<;H1fKpwjcHdX|}f-zmD1fg1L{6f;_a@TY7P)t6&w;sB0_j*^msLNFN_3cvr&+T*BgWdBR-G@xskS8bucnA|npx=4~L3 zS76H*AROKo$(t2L7uwoZOUGNKEJai>cMhvShhg>OxOC~;YM0@_g;_1*y#8m#mV}L>#TdauzzSXmh!zi+B zd;kU>MmFAuyte!vXG8o*2dXgsDjTpBGcFa_?+u)27WCb8E{e=KA2Lc void: health = max_health shape_cast_2d.shape.radius = collision_shape_2d.shape.radius shape_cast_2d.enabled = false + sprite_2d.material = sprite_2d.material.duplicate() _find_player() diff --git a/scenes/enemies/enemy_base.tscn b/scenes/enemies/enemy_base.tscn index e0552d3..077c6e1 100644 --- a/scenes/enemies/enemy_base.tscn +++ b/scenes/enemies/enemy_base.tscn @@ -1,7 +1,12 @@ -[gd_scene load_steps=8 format=3 uid="uid://b7vq8xspnlyeu"] +[gd_scene load_steps=10 format=3 uid="uid://b7vq8xspnlyeu"] [ext_resource type="Script" uid="uid://dxn17u7ltuibw" path="res://scenes/enemies/enemy_base.gd" id="1_qty17"] [ext_resource type="AnimationLibrary" uid="uid://dos4y853hq1gu" path="res://animation/generic_anims.res" id="2_pkqou"] +[ext_resource type="Shader" uid="uid://p7evv1wldgsa" path="res://assets/shaders/hit_flash.gdshader" id="2_satqt"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_qa0nx"] +shader = ExtResource("2_satqt") +shader_parameter/flash_amount = 0.0 [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_pkqou"] size = Vector2(32, 32) @@ -35,6 +40,18 @@ tracks/1/keys = { "update": 0, "values": [Color(1, 1, 1, 1)] } +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:material:shader_parameter/flash_amount") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_qa0nx"] _data = { @@ -49,6 +66,7 @@ collision_mask = 3 script = ExtResource("1_qty17") [node name="Sprite2D" type="Sprite2D" parent="."] +material = SubResource("ShaderMaterial_qa0nx") texture = SubResource("PlaceholderTexture2D_pkqou") [node name="CollisionShape2D" type="CollisionShape2D" parent="."]