Работа в процессе. Добавление ширины диапазона
This commit is contained in:
@@ -7,8 +7,9 @@ resource_local_to_scene = true
|
||||
shader = ExtResource("1_7cn72")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.168627)
|
||||
shader_parameter/width = 45.0
|
||||
shader_parameter/inner_radius = 0.1
|
||||
shader_parameter/outer_radius = 0.125
|
||||
shader_parameter/band = 0.04
|
||||
shader_parameter/radius = 0.06
|
||||
shader_parameter/inner_clip = 0.02
|
||||
|
||||
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_2lkm8"]
|
||||
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
extends Sprite2D
|
||||
|
||||
func set_strob_color(color: Color): $строб.material.set('shader_parameter/color', color);
|
||||
func set_strob_dir(dir: float): $строб.rotation_degrees = dir - 90.0
|
||||
func set_strob_width(width: float): $строб.material.set('shader_parameter/width', width)
|
||||
func set_strob_band(val: float): $строб.material.set('shader_parameter/inner_radius', val)
|
||||
func set_strob_visible(val: bool): $строб.visible = val
|
||||
func set_strob_dir(val: float): $строб.rotation_degrees = val - 90.0
|
||||
func set_strob_color(val: Color): $строб.material.set('shader_parameter/color', val)
|
||||
func set_strob_width(val: float): $строб.material.set('shader_parameter/width', val)
|
||||
func set_strob_band(val: float): $строб.material.set('shader_parameter/band', val / 125.0)
|
||||
func set_strob_radius(val: float): $строб.material.set('shader_parameter/radius', sv(val))
|
||||
|
||||
func get_center() -> Vector2: return $строб.position
|
||||
func get_strob_visible() -> bool: return $строб.visible
|
||||
func get_strob_width() -> float: return $строб.material.get('shader_parameter/width')
|
||||
func get_strob_band() -> float: return $строб.material.get('shader_parameter/inner_radius')
|
||||
func get_strob_band() -> float: return $строб.material.get('shader_parameter/band') * 125.0
|
||||
func get_strob_radius(val: float): return $строб.material.set('shader_parameter/radius', sv(val))
|
||||
func get_radius_max(): return $"строб".scale.x / 2.0
|
||||
|
||||
func sv(val: float) -> float: return val / ($"строб".scale.x / 2.0) * 0.125
|
||||
|
||||
@@ -13,9 +13,10 @@ size = Vector2(1600, 1200)
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("5_210ft")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.168627)
|
||||
shader_parameter/width = 97.2
|
||||
shader_parameter/inner_radius = 0.0742
|
||||
shader_parameter/outer_radius = 0.1099
|
||||
shader_parameter/width = 69.7
|
||||
shader_parameter/band = 0.019
|
||||
shader_parameter/radius = 0.085
|
||||
shader_parameter/inner_clip = 0.045
|
||||
|
||||
[node name="canvas" type="Sprite2D"]
|
||||
material = ExtResource("1_uio4c")
|
||||
@@ -28,5 +29,6 @@ position = Vector2(610, 600)
|
||||
scale = Vector2(0.2, 0.2)
|
||||
texture = ExtResource("3_bw5j0")
|
||||
|
||||
[node name="строб" parent="." instance=ExtResource("4_4hefb")]
|
||||
material = SubResource("ShaderMaterial_qrcbl")
|
||||
[node name="строб" parent="." instance=ExtResource("4_ev5xv")]
|
||||
material = SubResource("ShaderMaterial_c08th")
|
||||
scale = Vector2(1100, 1100)
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
extends Panel
|
||||
|
||||
@export var col_red: Color
|
||||
@export var col_grey: Color
|
||||
@export var strob_min_width: float
|
||||
@export var strob_max_width: float
|
||||
@export var strob_min_band: float
|
||||
@export var strob_max_band: float
|
||||
@export var drag_scale: float
|
||||
@export var col_red: Color
|
||||
@export var col_grey: Color
|
||||
@export var strob_min_width: float
|
||||
@export var strob_max_width: float
|
||||
@export var strob_min_band: float
|
||||
@export var strob_max_band: float
|
||||
@export var drag_scale_width: float
|
||||
@export var drag_scale_band: float
|
||||
@export var window_0_id: int
|
||||
@export var window_1_id: int
|
||||
|
||||
|
||||
enum DRAG_FSM { IDLE, DRAG, DISABLE }
|
||||
@@ -33,6 +36,9 @@ var strob_band_begin: float
|
||||
var strob_center: Vector2
|
||||
""" Центр антенн """
|
||||
|
||||
var shift_pressed: bool
|
||||
""" Кнопка SHIFT нажата """
|
||||
|
||||
signal drag_begin
|
||||
""" Вызывается в момент начала перетаскивания """
|
||||
|
||||
@@ -93,37 +99,40 @@ func map_dec_to_rad(pos0: Vector2, pos: Vector2) -> Vector2:
|
||||
|
||||
|
||||
func get_strob_width(pos: Vector2, prev: float) -> float:
|
||||
var strob_dir_width: float = prev + (drag_pos_begin.y - pos.y) / drag_scale
|
||||
var strob_dir_width: float = prev + (drag_pos_begin.y - pos.y) * drag_scale_width
|
||||
strob_dir_width = clip_value(strob_dir_width, strob_min_width, strob_max_width)
|
||||
return strob_dir_width
|
||||
|
||||
|
||||
func get_strob_band(pos: Vector2, prev: float) -> float:
|
||||
var strob_dir_band: float = prev + (drag_pos_begin.x - pos.x) / drag_scale
|
||||
var strob_dir_band: float = prev - (drag_pos_begin.y - pos.y) * drag_scale_band
|
||||
strob_dir_band = clip_value(strob_dir_band, strob_min_band, strob_max_band)
|
||||
return strob_dir_band
|
||||
|
||||
|
||||
func set_strob_dir(pos: Vector2):
|
||||
func set_strob(pos: Vector2):
|
||||
var radp: Vector2 = map_dec_to_rad(strob_center, pos)
|
||||
if radp.y < 600.0:
|
||||
if radp.y < $canvas.get_radius_max():
|
||||
$canvas.set_strob_dir(radp.x)
|
||||
$canvas.set_strob_radius(radp.y)
|
||||
|
||||
|
||||
func _on_drag_continue(event):
|
||||
if drag_button == MOUSE_BUTTON_RIGHT:
|
||||
var strob_width: float = get_strob_width(event.position, strob_width_begin)
|
||||
$canvas.set_strob_width(strob_width)
|
||||
#var strob_band: float = get_strob_band(event.position, strob_band_begin)
|
||||
#$canvas.set_strob_band(strob_band)
|
||||
if shift_pressed:
|
||||
var strob_width: float = get_strob_width(event.position, strob_width_begin)
|
||||
$canvas.set_strob_width(strob_width)
|
||||
else:
|
||||
var strob_band: float = get_strob_band(event.position, strob_band_begin)
|
||||
$canvas.set_strob_band(strob_band)
|
||||
elif drag_button == MOUSE_BUTTON_LEFT:
|
||||
set_strob_dir(event.position)
|
||||
set_strob(event.position)
|
||||
|
||||
|
||||
func _on_drag_begin(event):
|
||||
drag_pos_begin = event.position
|
||||
if drag_button == MOUSE_BUTTON_LEFT:
|
||||
set_strob_dir(event.position)
|
||||
set_strob(event.position)
|
||||
elif drag_button == MOUSE_BUTTON_RIGHT:
|
||||
strob_width_begin = $canvas.get_strob_width()
|
||||
strob_band_begin = $canvas.get_strob_band()
|
||||
@@ -145,6 +154,8 @@ func _input(event):
|
||||
elif event is InputEventKey:
|
||||
if event.pressed and event.physical_keycode == KEY_F11:
|
||||
emit_signal('full_screen')
|
||||
elif event.physical_keycode == KEY_SHIFT:
|
||||
shift_pressed = event.pressed
|
||||
|
||||
|
||||
func toggle_full_screen(id: int):
|
||||
@@ -157,5 +168,5 @@ func toggle_full_screen(id: int):
|
||||
|
||||
|
||||
func _on_full_screen():
|
||||
toggle_full_screen(1)
|
||||
toggle_full_screen(0)
|
||||
toggle_full_screen(window_1_id)
|
||||
toggle_full_screen(window_0_id)
|
||||
|
||||
@@ -13,9 +13,11 @@ col_red = Color(1, 0.568627, 0.431373, 0.239216)
|
||||
col_grey = Color(0.34902, 0.643137, 0.772549, 0.168627)
|
||||
strob_min_width = 5.0
|
||||
strob_max_width = 90.0
|
||||
strob_min_band = 200.0
|
||||
strob_max_band = 600.0
|
||||
drag_scale = 5.0
|
||||
strob_min_band = 0.1
|
||||
strob_max_band = 15.538
|
||||
drag_scale_width = 0.5
|
||||
drag_scale_band = 0.05
|
||||
window_1_id = 1
|
||||
metadata/_edit_vertical_guides_ = []
|
||||
|
||||
[node name="canvas" parent="." instance=ExtResource("2_pmw7s")]
|
||||
|
||||
Reference in New Issue
Block a user