1 Star 0 Fork 0

xrwang/rts_godot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
camera.gd 1.26 KB
一键复制 编辑 原始数据 按行查看 历史
xrwang 提交于 2024-09-03 23:11 . 修改选择框的绘制方法。
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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xrwang2/rts_godot.git
git@gitee.com:xrwang2/rts_godot.git
xrwang2
rts_godot
rts_godot
master

搜索帮助