Доработка. Переключение режимов карты - РТО
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
extends Sprite2D
|
extends Sprite2D
|
||||||
|
|
||||||
|
func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125
|
||||||
|
|
||||||
func set_strob_visible(val: bool): $строб.visible = val
|
func set_strob_visible(val: bool): $строб.visible = val
|
||||||
func set_strob_center(val: Vector2): $строб.position = val
|
func set_strob_center(val: Vector2): $строб.position = val
|
||||||
func set_strob_dir(val: float): $строб.material.set('shader_parameter/dir', val)
|
func set_strob_dir(val: float): $строб.material.set('shader_parameter/dir', val)
|
||||||
@@ -17,4 +19,4 @@ func get_strob_radius() -> float: return $строб.material.get('shader_par
|
|||||||
func get_radius_outter() -> float: return material.get('shader_parameter/radius_outter')
|
func get_radius_outter() -> float: return material.get('shader_parameter/radius_outter')
|
||||||
func get_radius_inner() -> float: return material.get('shader_parameter/radius_inner')
|
func get_radius_inner() -> float: return material.get('shader_parameter/radius_inner')
|
||||||
|
|
||||||
func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125
|
func set_view_mode(val: int): material.set('shader_parameter/mode', val);
|
||||||
|
|||||||
@@ -43,8 +43,7 @@ enum DragFSM {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
## Переключант режим окна программы полный экран - обычный
|
func on_button_view_toggled(toggled: bool): $canvas.set_view_mode(int(toggled))
|
||||||
func _on_full_screen(): toggle_full_screen(window_0_id)
|
|
||||||
|
|
||||||
|
|
||||||
## Обработчик сигнала изменения списка целей
|
## Обработчик сигнала изменения списка целей
|
||||||
@@ -53,8 +52,9 @@ func on_threats_resized(threats: Dictionary): $count_all_pad/count_all.text = '%
|
|||||||
|
|
||||||
## Производит инициализацию
|
## Производит инициализацию
|
||||||
func _ready():
|
func _ready():
|
||||||
$btn_strobe.button_connect('pressed', Callable(self, 'on_button_strobe_pressed'))
|
$btn_strob.button_connect('pressed', Callable(self, 'on_button_strobe_pressed'))
|
||||||
$btn_off.set_pressed(true)
|
$btn_view.button_connect('toggled', Callable(self, 'on_button_view_toggled'))
|
||||||
|
$grd_btns/btn_off.set_pressed(true)
|
||||||
on_button_strobe_pressed()
|
on_button_strobe_pressed()
|
||||||
drag_fsm = DragFSM.OFF
|
drag_fsm = DragFSM.OFF
|
||||||
var nodes: Array = get_tree().get_nodes_in_group('группа-режим-помехи')
|
var nodes: Array = get_tree().get_nodes_in_group('группа-режим-помехи')
|
||||||
|
|||||||
@@ -9,30 +9,33 @@ uniform vec4 color0: source_color = vec4(0.38, 0.47, 0.51, 0.4);
|
|||||||
uniform vec4 color1: source_color = vec4(0.39, 0.44, 0.50, 0.4);
|
uniform vec4 color1: source_color = vec4(0.39, 0.44, 0.50, 0.4);
|
||||||
uniform float radius_inner = 200.0; /* Радиус внутренний. Должно быть равно ant_band_r0_0 */
|
uniform float radius_inner = 200.0; /* Радиус внутренний. Должно быть равно ant_band_r0_0 */
|
||||||
uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */
|
uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */
|
||||||
|
uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */
|
||||||
|
|
||||||
const float ant_band_count_0 = 2.0;
|
const int ant_band_count_0 = 2;
|
||||||
const float ant_band_count_1 = 2.0;
|
const int ant_band_count_1 = 2;
|
||||||
const float ant_band_count_2 = 2.0;
|
const int ant_band_count_2 = 2;
|
||||||
const float ant_band_count_3 = 2.0;
|
const int ant_band_count_3 = 2;
|
||||||
const float ant_band_count_4 = 2.0;
|
const int ant_band_count_4 = 2;
|
||||||
const float ant_band_count_5 = 2.0;
|
const int ant_band_count_5 = 2;
|
||||||
const float ant_band_count_6 = 2.0;
|
const int ant_band_count_6 = 2;
|
||||||
|
|
||||||
|
const float ant_band_r0_0[] = {200.0, 480.0};
|
||||||
|
const float ant_band_r0_1[] = {250.0, 490.0};
|
||||||
|
const float ant_band_r0_2[] = {300.0, 500.0};
|
||||||
|
const float ant_band_r0_3[] = {350.0, 510.0};
|
||||||
|
const float ant_band_r0_4[] = {400.0, 520.0};
|
||||||
|
const float ant_band_r0_5[] = {450.0, 530.0};
|
||||||
|
const float ant_band_r0_6[] = {500.0, 540.0};
|
||||||
|
|
||||||
|
const float ant_band_r1_0[] = {250.0, 490.0};
|
||||||
|
const float ant_band_r1_1[] = {300.0, 500.0};
|
||||||
|
const float ant_band_r1_2[] = {350.0, 510.0};
|
||||||
|
const float ant_band_r1_3[] = {400.0, 520.0};
|
||||||
|
const float ant_band_r1_4[] = {450.0, 530.0};
|
||||||
|
const float ant_band_r1_5[] = {500.0, 540.0};
|
||||||
|
const float ant_band_r1_6[] = {550.0, 550.0};
|
||||||
|
|
||||||
const float ant_band_r0_0 = 200.0;
|
|
||||||
const float ant_band_r0_1 = 250.0;
|
|
||||||
const float ant_band_r0_2 = 300.0;
|
|
||||||
const float ant_band_r0_3 = 350.0;
|
|
||||||
const float ant_band_r0_4 = 400.0;
|
|
||||||
const float ant_band_r0_5 = 450.0;
|
|
||||||
const float ant_band_r0_6 = 500.0;
|
|
||||||
|
|
||||||
const float ant_band_r1_0 = 250.0;
|
|
||||||
const float ant_band_r1_1 = 300.0;
|
|
||||||
const float ant_band_r1_2 = 350.0;
|
|
||||||
const float ant_band_r1_3 = 400.0;
|
|
||||||
const float ant_band_r1_4 = 450.0;
|
|
||||||
const float ant_band_r1_5 = 500.0;
|
|
||||||
const float ant_band_r1_6 = 550.0;
|
|
||||||
const float d4 = 90.0;
|
const float d4 = 90.0;
|
||||||
const float ds = 1.0;
|
const float ds = 1.0;
|
||||||
|
|
||||||
@@ -60,10 +63,10 @@ void sector(inout vec4 c, vec2 uv, vec2 center, float a, float da, float r0, flo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void antenas(inout vec4 c, vec2 uv, vec2 p0, float cnt, float r0, float r1, vec4 c0, vec4 c1)
|
void antenas(inout vec4 c, vec2 uv, vec2 p0, int cnt, float r0, float r1, vec4 c0, vec4 c1)
|
||||||
{
|
{
|
||||||
float da = 180.0f / float(cnt);
|
float da = 180.0f / float(cnt);
|
||||||
for (int i = int(-cnt); i <= int(cnt); i ++)
|
for (int i = -cnt; i <= cnt; i ++)
|
||||||
{
|
{
|
||||||
float v = float(i & 1);
|
float v = float(i & 1);
|
||||||
vec4 col = v * c0 + (1.0f - v) * c1;
|
vec4 col = v * c0 + (1.0f - v) * c1;
|
||||||
@@ -113,13 +116,13 @@ void fragment()
|
|||||||
COLOR = vec4(0, 0, 0, 0.0); //texture(TEXTURE, UV); // Цвет текущей точки
|
COLOR = vec4(0, 0, 0, 0.0); //texture(TEXTURE, UV); // Цвет текущей точки
|
||||||
|
|
||||||
// Сетка антенн
|
// Сетка антенн
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_0, ant_band_r0_0, ant_band_r1_0, color1, color0);
|
antenas(COLOR, uv, pc0, ant_band_count_0, ant_band_r0_0[mode], ant_band_r1_0[mode], color1, color0);
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_1, ant_band_r0_1, ant_band_r1_1, color0, color1);
|
antenas(COLOR, uv, pc0, ant_band_count_1, ant_band_r0_1[mode], ant_band_r1_1[mode], color0, color1);
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_2, ant_band_r0_2, ant_band_r1_2, color1, color0);
|
antenas(COLOR, uv, pc0, ant_band_count_2, ant_band_r0_2[mode], ant_band_r1_2[mode], color1, color0);
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_3, ant_band_r0_3, ant_band_r1_3, color0, color1);
|
antenas(COLOR, uv, pc0, ant_band_count_3, ant_band_r0_3[mode], ant_band_r1_3[mode], color0, color1);
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_4, ant_band_r0_4, ant_band_r1_4, color1, color0);
|
antenas(COLOR, uv, pc0, ant_band_count_4, ant_band_r0_4[mode], ant_band_r1_4[mode], color1, color0);
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_5, ant_band_r0_5, ant_band_r1_5, color0, color1);
|
antenas(COLOR, uv, pc0, ant_band_count_5, ant_band_r0_5[mode], ant_band_r1_5[mode], color0, color1);
|
||||||
antenas(COLOR, uv, pc0, ant_band_count_6, ant_band_r0_6, ant_band_r1_6, color1, color0);
|
antenas(COLOR, uv, pc0, ant_band_count_6, ant_band_r0_6[mode], ant_band_r1_6[mode], color1, color0);
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
|
|
||||||
@@ -131,3 +134,4 @@ shader_parameter/color0 = Color(0.380392, 0.470588, 0.509804, 0.537255)
|
|||||||
shader_parameter/color1 = Color(0.3315, 0.45645, 0.51, 0.537255)
|
shader_parameter/color1 = Color(0.3315, 0.45645, 0.51, 0.537255)
|
||||||
shader_parameter/radius_inner = 200.0
|
shader_parameter/radius_inner = 200.0
|
||||||
shader_parameter/radius_outter = 550.0
|
shader_parameter/radius_outter = 550.0
|
||||||
|
shader_parameter/mode = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user