这是在 GOdot 内。我有一个粘液敌人,它的检测形状与我的其他资产位于不同的层上。我的玩家角色在两层上。
下面是我的史莱姆脚本。效果很好,但动画有一个问题。我希望“slime_idle”在游戏开始时以及当我的玩家退出敌人检测时播放。退出按预期工作,但在游戏开始时,我的“行走”动画在检测之外播放。我尝试将“slime_idle”添加到_ready,但仍然播放“walk”。
任何帮助和解释将不胜感激。
extends CharacterBody2D
var speed = 50
var player_chase = false
var player = null
func _physics_process(delta):
if player_chase:
position += (player.position - position).normalized() * speed * delta
move_and_collide(Vector2(0,0))
$AnimatedSprite2D.play("walk")
else:
$AnimatedSprite2D.play("slime_idle")
func _on_detection_area_body_entered(body):
player = body
player_chase = true
func _on_detection_area_body_exited(body):
player = null
player_chase = false
player_chase = false
我可以想到你应该检查的两件事。