From a423a95ade0cff520727953b3ca8ed6a0f432474 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 11 Sep 2023 09:13:44 +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=98=D0=BD=D0=B4=D0=B8=D0=BA=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=86=D0=B5=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/bip.tscn | 3 +++ scenes/работа.gd | 2 ++ shaders/bip.gdshader | 9 ++++++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/scenes/bip.tscn b/scenes/bip.tscn index 18854c9..7154888 100644 --- a/scenes/bip.tscn +++ b/scenes/bip.tscn @@ -5,6 +5,8 @@ [sub_resource type="ShaderMaterial" id="ShaderMaterial_2dulj"] shader = ExtResource("1_k6vue") shader_parameter/color = Color(1, 0.101961, 0.494118, 1) +shader_parameter/color_up = Color(1, 1, 1, 1) +shader_parameter/tick_update = 0 [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_tgf76"] @@ -13,6 +15,7 @@ script/source = "extends Sprite2D func set_bip_color(col: Color): material.set('shader_parameter/color', col) func get_bip_color() -> Color: return material.get('shader_parameter/color') +func set_tick_update(tick): material.set('shader_parameter/tick_update', tick) " [node name="bip" type="Sprite2D"] diff --git a/scenes/работа.gd b/scenes/работа.gd index 7767387..8ff0e2e 100644 --- a/scenes/работа.gd +++ b/scenes/работа.gd @@ -73,6 +73,8 @@ func map_threat_to_bip(th: Threats.Threat, bip: Sprite2D): REPSettings.ThreatParams.radius_outter, REPSettings.ThreatParams.freq_low, REPSettings.ThreatParams.freq_high) + var tick = Time.get_ticks_msec() + bip.set_tick_update(tick) ## Обработчик сигнала обновления цели diff --git a/shaders/bip.gdshader b/shaders/bip.gdshader index a46d779..56ead0a 100644 --- a/shaders/bip.gdshader +++ b/shaders/bip.gdshader @@ -3,9 +3,12 @@ shader_type canvas_item; /* Закрашенная окружность */ uniform vec4 color: source_color = vec4(1, 1, 1, 1); -const float ds = 0.01; /* Относительное расстояние на котором выполняется сглаживание краёв */ -const vec2 center = vec2(0.125, 0.125); /* Центр должен быть в (0.5, 0.5), но это не так */ -const float radius = 0.125 - ds * 2.0; /* Радиус должен быть 0.5, но это не так */ +uniform vec4 color_up: source_color = vec4(1, 1, 1, 1); /* Цвет вспышки при обновлении */ +uniform uint tick_update = 0; /* Время последнего обновления, мс */ +const float time_delta = 0.1; /* Время вспышки при обновлении, c */ +const float ds = 0.01; /* Относительное расстояние на котором выполняется сглаживание краёв */ +const vec2 center = vec2(0.125, 0.125); /* Центр должен быть в (0.5, 0.5), но это не так */ +const float radius = 0.125 - ds * 2.0; /* Радиус должен быть 0.5, но это не так */ float smooth_px(float r, float R)