代码拉取完成,页面将自动刷新
extends Camera2D
var mousePos: Vector2 = Vector2()
var mousePosGlobal: Vector2 = Vector2()
var start: Vector2 = Vector2()
var startV: Vector2 = Vector2()
var end: Vector2 = Vector2()
var endV: Vector2 = Vector2()
var isDragging: bool = false
@onready var panel: Panel = $"../Panel" as Panel
signal area_selected
signal start_move_selection
func _process(delta: float) -> void:
if Input.is_action_just_pressed("LeftClick"):
start = mousePosGlobal
startV = mousePos
isDragging = true
if isDragging:
end = mousePosGlobal
endV = mousePos
draw_area()
if Input.is_action_just_released("LeftClick"):
if startV.distance_to(mousePos) > 20:
end = mousePosGlobal
endV = mousePos
isDragging = false
draw_area(false)
emit_signal("area_selected")
else:
end = start
isDragging = false
draw_area(false)
func _input(event: InputEvent) -> void:
if event is InputEventMouseButton:
mousePos = event.position
mousePosGlobal = event.global_position
func draw_area(s: bool = true) -> void:
var int_s: int = int(s)
var area_size: Vector2 = Vector2(abs(startV.x - endV.x) + int_s, abs(startV.y - endV.y) + int_s)
var area_position: Vector2 = Vector2(minf(startV.x, endV.x), minf(startV.y, endV.y))
panel.size = area_size
panel.position = area_position
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。