$AnimatedSprite2D.play 即使添加到 _ready 函数中也不会在游戏开始时播放我的空闲动画。只玩步行直到进入检测

问题描述 投票:0回答:1

这是在 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
2d game-development godot gdscript godot4
1个回答
0
投票

我可以想到你应该检查的两件事。

  1. 在 AnimatedSprite2D 上,您将空闲动画分配给 Animation 变量。
  2. 您的空闲动画启用了“加载时自动播放”,而不是其他动画之一,例如行走。
© www.soinside.com 2019 - 2024. All rights reserved.