Sunset
587 字
3 分钟
godot基础:Input单例和自定义单例
大家好呀!我是琴泠,之前就有学过一点点godot的开发,但是为了更加系统性,我打算努努力,从更加基础的部分开始掌握学习。这个日志就是我的学习过程啦~相信你这么聪明,只要和我一起努力,也一定可以学会的。
单例
- 单例
- 单例是一个刻意在任何脚本中直接对其访问的对象,分为内置单例与自定义单例。每个单例都是独一无二的对象。
- 内置单例不是节点,主要成员是各类server,开发者可以使用它们直接控制游戏程序的图形与音效等内容。此外,还包括了一些其他对象,它们设计的范围包括网络,时间,电脑系统,输入等。
- 自定义单例必须是节点类型的对象,是开发者自定义的全局对象。
Input 单例
- Input单例
- Input单例是一个重要对象,它可以对玩家的案件情况进行反馈
- Input是GDscript中的单例,可以在任何一个脚本中对它进行访问。
- Input的常用函数介绍
在设置-键位映射中,就可以设置action,例如添加一个向左走,设置完毕后,添加键位映射,选择Keyboard Keys ,找到a键。
对于input,如果是键位而非遥感,那么按下后值为1,否则为0,可以用于做if判断。
保存后,你可以在脚本中直接访问Input 单例,例如:
func _process(): print(Input.get_action_strengh("向左走")) #在这里选择打印Input的输出,当玩家按下a时,打印输出1。这种一秒内检测数十次的游戏输入情况,称之为轮询
如果稍作修改,让角色移动:
func _process(): if Input.get_action_strengh("向左走"): self.postion.x = self.postion.x - 1创建自定义单例
首先,需要新建一个脚本,在项目设置中找到Autoload(不同版本的翻译会改为 全局 或 自动加载),选择刚才新建的脚本。
在这里添加完毕后,就可以修改单例的名称。一旦添加成功,就可以在不同脚本间访问这个单例,例如:
##############################规定了一个level单例:var count = 100func print_count(): print("单例的自定义函数")##############################
func _ready(): print(level.count) godot基础:Input单例和自定义单例
https://vilstia.pages.dev/posts/游戏开发/godot/godot基础iput单例与自定义单例/