gpt4 book ai didi

game-physics - 如果它与鼠标处于同一位置,则停止 Sprite 的移动

转载 作者:行者123 更新时间:2023-12-02 00:54:46 25 4
gpt4 key购买 nike

我试图让 Sprite 在 xy 与鼠标相同时停止移动。

出于某种原因,一旦图像与鼠标处于相同位置,图像就会开始在同一轴上快速来回移动。我需要让它停止移动。

func _physics_process(delta):
var move_vec = Vector2()
var look_vec = get_global_mouse_position() - global_position
//this gets the mouse and sprite position

if move_vec != look_vec: // if mouse and sprite are not the same then move.
move_vec = look_vec
move_vec = move_vec.normalized()
move_and_collide(move_vec * speed * delta)
global_rotation = atan2(look_vec.y, look_vec.x)
else:
pass`enter code here`

最佳答案

啊,这是我在使用 Unity 进行游戏开发时发生的事情。

问题是您的超调量非常小。

假设你想到达位置 0。你正在点击 0.00004 然后 -0.0524 然后 0.00242 这样的位置

基本上,您在接近零的位置摆动,因为它永远不会完全相等。

我建议你尝试这样的事情:

if move_vec - look_vec > someMinValue || move_vec - look_vec < -someMinValue 

(这是绝对值比较)

基本上,如果它在某个小值之内,你可以告诉游戏放松并接受它。然后您可以选择调整该值以使其完全等于所需值:

move_vec = look_vec

您可能会想出更好的答案。这里重要的是您了解问题是什么,现在可以按照您想要的方式纠正它。

关于game-physics - 如果它与鼠标处于同一位置,则停止 Sprite 的移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55113996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com