在Godot中,如果vector.y达到最大值,如何限制vector.x?

问题描述 投票:0回答:1

我是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度,而不是它指向的地方。这可能吗?

先谢谢你,请原谅我的英语不好。

2d godot
1个回答
1
投票

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

如果小于最大值,这不会有任何影响,但如果超过最大值,则会将其设置为最大值。

© www.soinside.com 2019 - 2024. All rights reserved.