【问题标题】:Enemy animation problems godot敌人动画问题 godot
【发布时间】:2022-01-10 17:46:51
【问题描述】:

我在 godot 中为我的 2d rpg 游戏创建了一个敌人,但我使用了 AnimationPlayer,但不知道如何使用正确的动画让我的敌人跟随我

onready var sprite = $AnimationPlayer
onready var stats = $Stats
onready var playerDetectionZone = $PlayerDetectionZone


func _physics_process(delta):
    knockback = knockback.move_toward(Vector2.ZERO, FRICTION * delta)
    knockback = move_and_slide(knockback)
    match state:
        IDLE:
            velocity = velocity.move_toward(Vector2.ZERO, FRICTION * delta)
            seek_player()
        WANDER:
            pass
        CHASE:
            var player = playerDetectionZone.player
            if player != null:
                var direction = (player.global_position - global_position).normalized()
                velocity = velocity.move_toward(direction * MAX_SPEED, ACCELERATION * delta)
    
    velocity = move_and_slide(velocity)

func seek_player():
    if playerDetectionZone.can_see_player():
        state = CHASE


func _on_Hurtbox_area_entered(area):
    stats.health -= area.damage
    knockback = area.knockback_vector * 65


func _on_Stats_no_health():
    queue_free()
    var enemyDeathEffect = EnemyDeathEffect.instance()
    get_parent().add_child(enemyDeathEffect)
    enemyDeathEffect.global_position = global_position

【问题讨论】:

    标签: game-physics godot gdscript


    【解决方案1】:

    AnimationPlayer 有一个 play 方法,您可以调用它来告诉它播放动画(您将动画名称作为参数传递)。通常你会制作循环动画,并在必要时调用play 切换到不同的动画(例如,当角色改变状态时)。

    我看你根本不使用AnimationPlayer。另外,我不知道您有哪些动画,或者您是否需要更多内容才能使其适合您的情况。所以,我将自己限制在最基本的层面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 2015-02-16
      • 2023-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-08
      相关资源
      最近更新 更多