【问题标题】:up_direction parameter in godot enginegodot引擎中的up_direction参数
【发布时间】:2021-08-16 20:26:18
【问题描述】:

我正在学习 godotengine,我对在 move_and_slide() 方法中使用 up_direction 参数感到困惑。其实我不明白它是做什么的,它和 is_on_floor() 方法有什么关系。

提前致谢。

【问题讨论】:

    标签: godot


    【解决方案1】:

    move_and_slideup_direction 参数告诉KinematicBodyKinematicBody2D 识别地板、墙壁和天花板的方向。

    调用move_and_slide的结果是,物体会移动,它会发生碰撞,它会根据up_direction的角度对碰撞的物体进行分类。像这样:

    • 如果碰撞方向与up_direction 大致相反,则为地板。
    • 如果碰撞方向与up_direction大致相同,则为天花板。
    • 否则就是一堵墙。

    然后move_and_slide 将相应地更新is_on_flooris_on_wallis_on_ceiling

    我说“大致”,因为在偏离小于floor_max_angle 参数值的方向上的碰撞,它仍然会计数。

    此外,floor_max_angle 标准还用于决定它是否会停止或滑动它所碰撞的表面。如果它会滑动,这会改变速度矢量。这就是为什么move_and_slide 返回一个新的速度向量。

    另外值得注意的是,如果你通过零,一切都被认为是一堵墙。例如,如果你将Vector2.ZERO 作为up_direction 传递给KinematicBody2D.move_and_slide,那么它会认为它碰撞的所有东西都是一堵墙。这对于自上而下的游戏很有用

    【讨论】:

    • 我明白了,感谢您的帮助。
    猜你喜欢
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2018-12-26
    • 1970-01-01
    • 2021-01-18
    • 2017-05-12
    • 2021-01-26
    相关资源
    最近更新 更多