我正在使用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
答案 0 :(得分:0)
有人指出了我的答案:
snapshot.assert_match
因为我一直都在叫“ false”。
但是,他给了我另外一个解决方案:
$enemy1.flip_h = !$enemy1.flip_h
并建议:
is_on_wall()