Python ursina:通过改变 FOV 的值来瞄准(动画问题)
Python ursina : aim by changing FOV's value (issue with animation)
我正在 Ursina 中制作 FPS 游戏,我希望能够瞄准。我想,我会通过更改相机的 FOV 来做到这一点:它是完美的!
问题是我希望能够为瞄准的过渡设置动画。我不能使用 for 循环,因为 FOV 仅在完成后更新,而且我不能使用动画方法...我试过了:
camera.animate("fov", -30, duration = 2, delay=0, auto_destroy = True)
使用语法:
animate(name, value, duration=.1, delay=0, curve=curve.in_expo, loop=False, resolution=None, interrupt='kill', time_step=None, auto_destroy=True)
在这里,我的值(我想减少我的 FOV,所以要缩放 30)没有任何意义:我可以放任何我想要的东西,直到 fov 等于0.
有办法解决这个问题吗?通过找到一种在 for 循环中更新相机的方法,或者通过找到任何方法来设置 FOV 转换的动画
找到答案:值参数实际上不是您想要增加或减少 FOV(或任何东西)的值,但它实际上是它将达到的值!所以,如果我输入 1,我的 FOV 将变为 1,这就是原因。
要为我的 FOV 设置 -30 动画,正确的语法是:
camera.animate("fov", camera.fov-30, duration = 2, delay=0, auto_destroy = True)
我正在 Ursina 中制作 FPS 游戏,我希望能够瞄准。我想,我会通过更改相机的 FOV 来做到这一点:它是完美的!
问题是我希望能够为瞄准的过渡设置动画。我不能使用 for 循环,因为 FOV 仅在完成后更新,而且我不能使用动画方法...我试过了:
camera.animate("fov", -30, duration = 2, delay=0, auto_destroy = True)
使用语法:
animate(name, value, duration=.1, delay=0, curve=curve.in_expo, loop=False, resolution=None, interrupt='kill', time_step=None, auto_destroy=True)
在这里,我的值(我想减少我的 FOV,所以要缩放 30)没有任何意义:我可以放任何我想要的东西,直到 fov 等于0.
有办法解决这个问题吗?通过找到一种在 for 循环中更新相机的方法,或者通过找到任何方法来设置 FOV 转换的动画
找到答案:值参数实际上不是您想要增加或减少 FOV(或任何东西)的值,但它实际上是它将达到的值!所以,如果我输入 1,我的 FOV 将变为 1,这就是原因。 要为我的 FOV 设置 -30 动画,正确的语法是:
camera.animate("fov", camera.fov-30, duration = 2, delay=0, auto_destroy = True)