我遇到了一个问题,我的 if 条件起作用了,但是很快就结束了她的功能。
var speed = 75
var dir: Vector2 = Vector2.ZERO
var enter: bool = false
@onready var camera = $"../camera"
func _ready():
randomize()
_choose_random_direction()
func _physics_process(delta: float) -> void:
velocity = dir * speed
if Input.is_action_just_pressed("accept"):
camera.unzoomi(delta)
move_and_slide()
func _choose_random_direction():
var directions = [
Vector2(-1, 0), Vector2(1, 0), # Left, Right
Vector2(0, -1), Vector2(0, 1), # Up, Down
Vector2(-1, -1), Vector2(1, -1), # Top-left, Top-right
Vector2(-1, 1), Vector2(1, 1), # Bottom-left, Bottom-right
Vector2(0, 0)
]
dir = directions[randi() % directions.size()]
await get_tree().create_timer(randf_range(1, 3)).timeout
_choose_random_direction()
func _physics_process 中的 if 假设是相机的缩放具有平滑过渡,但是当我调用缩放功能时,缩放在一个实例中结束,而不是我编程的 2 秒。
这是相机的代码:
var zooming: bool = false
@onready var player = $"../player"
func _process(delta: float) -> void:
position = player.position
func zoomi(delta):
var end: float = 3
zooming = true
if zooming == true:
zoom.x = lerp(zoom.x, end, 0.4 * delta)
zoom.y = lerp(zoom.y, end, 0.4 * delta)
if zoom.x > end * .8:
zooming = false
func unzoomi(delta):
var end: float = 3
zooming = true
if zooming == true:
zoom.x = lerp(zoom.x, end, 0.4 * delta)
zoom.y = lerp(zoom.y, end, 0.4 * delta)
if zoom.x > end * .8:
zooming = false
谢谢。