Godot-敌人与墙碰撞后,flip_h出现问题(2D)

时间:2020-06-26 15:08:17

标签: godot gdscript

我正在使用Godot 3.2进行2D工程,并为敌人运行脚本以在与墙壁碰撞时更改方向(flip_h),但是当敌人与墙壁或其他敌人碰撞时,敌人也会更改方向。

我正在使用的代码仅在第一次发生冲突(ONCE)时有效,之后再也不会改变方向了吗?

谢谢

extends "res://Actors/Actors.gd"

func _ready() -> void:
    set_physics_process(false)
    _velocity.x = -speed.x
    $enemy1.flip_h = true

func _physics_process(delta) -> void:
   _velocity.y += gravity * delta
   $enemy1.play("walk")

   if is_on_wall():
    _velocity.x *= -1.0
    $enemy1.flip_h = false

_velocity.y = move_and_slide(_velocity, FLOOR_NORMAL).y

1 个答案:

答案 0 :(得分:0)

有人指出了我的答案:

snapshot.assert_match

因为我一直都在叫“ false”。

但是,他给了我另外一个解决方案:

$enemy1.flip_h = !$enemy1.flip_h

并建议:

is_on_wall()