返回介绍

线性输入

发布于 2024-01-08 20:55:54 字数 4063 浏览 0 评论 0 收藏 0

游戏手柄上有一些可以“输入一半”的键,比如摇杆和扳机,这时候就可以使用 Input.get_action_strength("动作名称") 来获取一个小数数值,范围是 0 ~ 1,表示按键移动的强度。

例如根据玩家向左移动摇杆的幅度控制移动速度:

var left = Input.get_action_strength("动作名称")
if left > 0:
    position.x -= left * delta * 1000

成对输入

有时候我们会需要成对的输入,例如操控船只的加速和减速,我们可以使用 Input.get_axis("反方向动作","正方向动作") 来获取一个 -1 ~ 1 的值。

或者有些两个轴的输入,例如玩家的上下左右移动,可以使用 Input.get_vector("-x动作","+x动作","-y动作","+y动作") 来获取到一个 Vector2 类型的值,其中的 x 和 y 的范围是 -1 ~ 1。

这两个方法没什么难点,这里就不放示例了,各位亲自体验尝试以下吧。

[!tip]

这些返回小数的输入获取方法,对于键盘或非线性按键的操作会返回 -1、0、1 这种整数值。

鼠标输入

鼠标的按键输入可以直接使用输入映射功能。

如果要获取鼠标的位置,则可以使用 get_global_mouse_position() 获取鼠标在 2D 世界中的坐标。

如果要获取鼠标的移动速度,则需要使用 _input 生命周期方法:

func _input(event):
    if is_instance_of(event,InputEventMouseMotion):
        print(event.velocity)

这样就会输出鼠标的移动速度。

这段代码涉及到一些没学过的东西,暂时先不解释了,暂时只要知道里面的 if 中的代码会在鼠标移动时执行即可。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文