首页 > 解决方案 > 在 Godot 中,如果 vector.y 已达到最大值,如何限制 vector.x?

问题描述

我是godot引擎的新手。我正在尝试制作一款太空射击游戏,但遇到了一个小问题。我正在使用该代码移动我的船:

if button_up.is_pressed():`
    velocity += Vector2(acceleration, 0).rotated(rotation + deg2rad(-90))
move_and_slide(velocity)

我做了它,所以船移动到它指向的地方,它工作得很好。但是,当我移动到 1 和 89、91 和 179 等之间的度数时,velocity.x 和 velocity.y 都会继续上升,直到达到 max_speed,这导致我的船直接移动 45、135、225 或 315 度和不是它指向的地方。我想这样做,例如当velocity.x 达到max_speed 时,velocity.y 被限制为它的当前值。可能吗?

提前谢谢你,对不起我的英语

标签: 2dgodot

解决方案


在 move_and_slide 之前,做velocity = velocity.clamped(max_speed)

如果它小于最大值,这不会有任何影响,但如果它结束,它将设置为最大值。


推荐阅读