Godot学习笔记7——Input单例与自定义单例

一、单例

单例是一个可以在任何脚本直接访问的对象,分为内置单例与自定义单例。内置单例不是节点,主要成员是各类Server,开发者可以使用它们直接控制游戏程序的图形与音效等内容。

我们可以在文档中查找“@GlobalScope”获取相关内容:

自定义单例必须是节点类型的对象,是开发者自定义的全局对象。

二、Input单例 

Input是一个重要对象,可以对玩家的按键情况进行反馈。

点击“项目”-“项目设置”-“输入设置”,即可加入新的按键映射:

我们在添加新动作一栏输入“向左走”,点击“添加”点击右侧加号,即可选择键盘按键。找到“A”键并点击确定即可创建。

 在项目中,为“Sprite2D”添加如下代码:

这里,“get_action_strength”函数的作用是返回按键按下时的力度,如果使用的是机械键盘,那么这里只会固定返回0或者1,将其返回内容打印出来,并放在“_process”函数下,每帧运行一次,可以看到输出栏一直在输出0,按下“A”键,输出变成1,松开后又恢复0。

 在“_process”或“_physic_process”中通过Input单例来获取按键情况,一秒数十次检测游戏输入情况的编码方式称作轮询。if+轮询+修改内置变量=游戏在玩家控制下发生实质性的改变。

比如,通过如下代码,我们就可以让画面中的图片在按下A时向左移动:

 三、自定义单例

我们也可以在项目中自定义一个单例,只需要在项目文件中新建一个脚本,并写入如下代码:

接着,我们来到“项目”-“项目设置”-“自动化加载”,将我们的脚本加入进去:

点击路径右侧的文件夹按钮即可选择脚本,在节点名称处可以自定义名称。

接着,我们在刚才“Sprite2D”挂载脚本下写下如下代码:

运行后可以看到,它将a变量所代表的值和b函数都执行了一遍。 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风痕天际

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值