From 3419c6632f2de415b43e39fff76b40dc3ef80dc1 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 24 Feb 2025 08:55:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=A6=D0=B2=D0=B5=D1=82=20=D0=BE=D1=82=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=20=D0=B4=D0=BB=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=B0=D0=B6=D0=B4=D0=BE=D0=B3=D0=BE=20=D1=8D=D0=BA=D0=B7=D0=B5?= =?UTF-8?q?=D0=BC=D0=BF=D0=BB=D1=8F=D1=80=D0=B0=20=D0=BE=D1=82=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/bip.png | Bin 0 -> 610 bytes data/bip.png.import | 34 ++++++++++++++++++++++++++++++++ data/подкладка.png | Bin 0 -> 97 bytes data/подкладка.png.import | 34 ++++++++++++++++++++++++++++++++ scenes/bip/bip.gd | 10 +++++++--- scenes/bip/bip.tscn | 30 ++++++++++------------------ scenes/bip/подкладка.png.import | 34 ++++++++++++++++++++++++++++++++ shaders/bip.gdshader | 4 ++-- 8 files changed, 121 insertions(+), 25 deletions(-) create mode 100644 data/bip.png create mode 100644 data/bip.png.import create mode 100644 data/подкладка.png create mode 100644 data/подкладка.png.import create mode 100644 scenes/bip/подкладка.png.import diff --git a/data/bip.png b/data/bip.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb0f1c4bdbf8ee7f2511bfa03e847cd8b30c594 GIT binary patch literal 610 zcmV-o0-gPdP)N`OW!b%g+pZOt#jPm>P1Dv&2^dJ`bkQ?1 z6){nhF&7?LWagYR_uY5jxxo`cQUC!gcxC=;2#mZG5tTS0-t~bV9UfYX}MU)1#k#_2EInbV3Pf= zN%|nEC8;ZEr02)T7%gMg#*t@|-uZ=Jl5)K~a$~iOos~JWdj+@Yw0{JapOEr#g}!Xe z@4!z<--^Oar3aT>a0kHZl*r2>R*k)9F75>QoHt$VTla)bE0VGIfu=d{h!%a$cS>h_ z7Ev?Dt~p8G`xQ5twJE3mp{-am*NUVl8p^sm+$_JooP}+3M)IYy;gu>7kVimvQr1{J0M+?-0jm9A~0x-;Gend1bwjtCW};MN}QY{pp_nB&x(|2m)DYug^~ zVn(%)8~X@o7mm5y2l_UUhro|1Z-tC`Xpa7We!y7}(6NC$27XUTgp74;?9QWuOVy_I w)ouBF4kmLkn$5*r literal 0 HcmV?d00001 diff --git a/data/подкладка.png.import b/data/подкладка.png.import new file mode 100644 index 00000000..d0bec96f --- /dev/null +++ b/data/подкладка.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://o4qqx5cl0m52" +path="res://.godot/imported/подкладка.png-7dcb2892e7adf1f58496d92f942515b9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://data/подкладка.png" +dest_files=["res://.godot/imported/подкладка.png-7dcb2892e7adf1f58496d92f942515b9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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=1 diff --git a/scenes/bip/bip.gd b/scenes/bip/bip.gd index b5bfabd8..d8ea82fa 100644 --- a/scenes/bip/bip.gd +++ b/scenes/bip/bip.gd @@ -10,11 +10,15 @@ func set_track_visible(value: bool): $track.visible = value func set_ecm_visible(value: bool): $ecm_done.visible = value -func update(): $bip.material.set('shader_parameter/tick_update', float(Time.get_ticks_msec()/1000)) +func update(tick_ms: int = 0): pass -## Задаёт цвет для всех экземпляров -func set_color(color: Color): $bip.material.set('shader_parameter/color', Vector3(color.r, color.g, color.b)) +## Задаёт цвет +func set_color(color: Color): $bip.self_modulate = color + + +## Возвращает цвет +func get_color(): return $bip.self_modulate ## Функция присваивает заданое значение видимости селектору. diff --git a/scenes/bip/bip.tscn b/scenes/bip/bip.tscn index 861cc7f8..b7dbc980 100644 --- a/scenes/bip/bip.tscn +++ b/scenes/bip/bip.tscn @@ -1,16 +1,9 @@ -[gd_scene load_steps=14 format=3 uid="uid://nl1vklubr5kr"] +[gd_scene load_steps=12 format=3 uid="uid://nl1vklubr5kr"] [ext_resource type="Script" path="res://scenes/bip/bip.gd" id="1_h7l70"] -[ext_resource type="Shader" path="res://shaders/bip.gdshader" id="2_rt0la"] +[ext_resource type="Texture2D" uid="uid://cp4bv6lh8w83k" path="res://data/bip.png" id="2_yjvg0"] [ext_resource type="Shader" path="res://shaders/tracked.gdshader" id="3_2a1qb"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_2dulj"] -shader = ExtResource("2_rt0la") -shader_parameter/tick_update = 0.0 -shader_parameter/color = Color(0.972549, 0.12549, 0.411765, 1) - -[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_w5pye"] - [sub_resource type="Shader" id="Shader_60ho7"] code = "shader_type canvas_item; @@ -223,38 +216,36 @@ shader_parameter/speed = 71.0 [node name="threat" type="Control"] layout_mode = 3 anchors_preset = 0 -offset_right = 20.0 -offset_bottom = 20.0 script = ExtResource("1_h7l70") [node name="bip" type="TextureButton" parent="."] -material = SubResource("ShaderMaterial_2dulj") layout_direction = 1 layout_mode = 0 -offset_right = 1.0 -offset_bottom = 1.0 -scale = Vector2(20, 20) +offset_left = 10.0 +offset_top = 10.0 +offset_right = 10.0 +offset_bottom = 10.0 +scale = Vector2(0.4, 0.4) action_mode = 0 button_mask = 3 -texture_normal = SubResource("PlaceholderTexture2D_w5pye") +texture_normal = ExtResource("2_yjvg0") +ignore_texture_size = true stretch_mode = 3 [node name="selector" type="Sprite2D" parent="."] -visible = false material = SubResource("ShaderMaterial_fkqwb") scale = Vector2(20, 20) texture = SubResource("PlaceholderTexture2D_hqs6j") centered = false [node name="recomendation" type="Sprite2D" parent="."] -visible = false material = SubResource("ShaderMaterial_lpmq6") scale = Vector2(20, 20) texture = SubResource("PlaceholderTexture2D_hqs6j") centered = false +metadata/_edit_lock_ = true [node name="ecm_done" type="Sprite2D" parent="."] -visible = false material = SubResource("ShaderMaterial_h3oo7") position = Vector2(-5, -5) scale = Vector2(30, 30) @@ -262,7 +253,6 @@ texture = SubResource("PlaceholderTexture2D_hqs6j") centered = false [node name="track" type="Sprite2D" parent="."] -visible = false material = SubResource("ShaderMaterial_lkrha") position = Vector2(10, 10) scale = Vector2(26, 26) diff --git a/scenes/bip/подкладка.png.import b/scenes/bip/подкладка.png.import new file mode 100644 index 00000000..4cd5df2e --- /dev/null +++ b/scenes/bip/подкладка.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bcro5nt0as20n" +path="res://.godot/imported/подкладка.png-34c60261f5f8370acd285881dd35a7b0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/bip/подкладка.png" +dest_files=["res://.godot/imported/подкладка.png-34c60261f5f8370acd285881dd35a7b0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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=1 diff --git a/shaders/bip.gdshader b/shaders/bip.gdshader index 64a0e6ed..654292d1 100644 --- a/shaders/bip.gdshader +++ b/shaders/bip.gdshader @@ -4,7 +4,6 @@ shader_type canvas_item; /* Закрашенная окружность */ uniform float tick_update = 0.0; /* Время последнего обновления, мс */ -uniform vec3 color : source_color = vec3(1.0, 1.0, 1.0); const float time_delta = 0.5; /* Время вспышки при обновлении, c */ const float ds = 0.01; /* Относительное расстояние на котором выполняется сглаживание краёв */ const vec2 center = vec2(0.125, 0.125); /* Центр должен быть в (0.5, 0.5), но это не так */ @@ -19,5 +18,6 @@ void fragment() { alpha = time_delta - (TIME - tick_update) * alpha_offset; } - COLOR = vec4(color, alpha_main - alpha) * smooth_px(length(UV - center), radius, ds); + COLOR = texture(TEXTURE, UV); + COLOR.a = (alpha_main - alpha) * smooth_px(length(UV - center), radius, ds); }