1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Tools/Managers/CameraManager.gd
T
fallingshrimp 44699d4302 feat: 添加游戏启动界面和着色器效果
- 新增启动界面背景和logo
- 实现顶部和底部阴影着色器
- 添加难度选择滑块和角色名输入框
- 优化多人游戏按钮交互
- 修复编译提示面板的动画效果
- 更新UI主题样式
2026-05-03 12:28:38 +08:00

33 lines
1.1 KiB
GDScript

@tool
extends Camera2D
class_name CameraManager
@export var constantOffset: Vector2 = Vector2.ZERO
@onready var animator: AnimationPlayer = $"%animator"
var shakeIntensity: float = 0
static var instance: CameraManager = null
func _ready():
instance = self
func _physics_process(_delta):
if is_instance_valid(UIState.player):
position = UIState.player.position + constantOffset
position += MathTool.sampleInCircle(shakeIntensity)
offset += ((get_global_mouse_position() - UIState.player.position).clampf(-100, 100) - offset) * 0.15
static func shake(millseconds: float, intensity: float = 10, steper: Callable = func(currentValue, _totalValue, _restPercent): return currentValue):
if StarterPanel.buildingShader: return
var startTime = WorldManager.getTime()
instance.shakeIntensity = intensity
await TickTool.until(
func():
instance.shakeIntensity = steper.call(instance.shakeIntensity, intensity, 1 - (WorldManager.getTime() - startTime) / millseconds)
return WorldManager.getTime() - startTime >= millseconds
)
instance.shakeIntensity = 0
static func playAnimation(animation: String):
instance.animator.play(animation)