不想打工
这个作者很懒,什么都没留下…
展开
-
Godot注意细节
Godot中向量坐标是浮点数,而不是整数。这意味着一个Vector2可以有一个小数值,比如(1.5,1.5)。由于对象不能以半数像素绘制,这对于像素艺术游戏来说,可能会造成视觉上的问题,因为你要确保纹理的所有像素都被绘制出来。为了解决这个问题,请打开项目|项目设置,并在下面找到渲染/质量部分。侧边栏并启用 “使用像素捕捉”,如下截图所示。如果你在游戏中使用2D像素艺术,最好在开始项目时就启用这个设置。这个设置在3D游戏中没有效果。...原创 2020-09-13 17:25:56 · 763 阅读 · 0 评论 -
Godot GUI主题
Godot主题是皮肤GUI的有力方法。如果您只有几个GUI元素,那么创建主题可能就太过分了。但是,一旦您拥有更多GUI元素,我总是建议您使用主题。在这里,我们将快速了解主题的基本含义,可以使用的主题以及如何创建它们。Godot的主题就相当于许多应用软件的皮肤。如果你只有寥寥可数的GUI元素,就没必要创建主题。但是,一旦您拥有更多GUI元素,就建议你使用主题。关于Godot主题如果您已经创建过GUI元素(例如按钮),那么您可能知道,您可以使该按钮具有独特的外观。您可以为按钮提供自定义颜色,自定义字体等,原创 2020-09-20 12:00:18 · 891 阅读 · 0 评论 -
富文本标签
RichTextLabel中的BBCode简介我们经常玩的日式RPG游戏中,常常有很多对话,而且需要关注对话的内容。而游戏的对话通常会使用红色字体来标注关键。Godot的标签节点非常适合显示基本文本,但有其局限性。 如果要更改文本的颜色或其对齐方式,该更改会影响“标签”节点中的所有文本。 您不能仅使文本的一部分成为一种颜色,也不能使文本的仅一部分处于居中状态。 要解决此限制,您可以使用RichTextLabel。RichTextLabel允许在控件中显示复杂的文本标记。 它具有用于生成标记的内置API原创 2020-09-20 21:18:42 · 925 阅读 · 0 评论 -
创建自己的资源
与Godot中的任何对象一样,用户也可以编写资源脚本。资源脚本继承了在对象属性和序列化文本或二进制数据(.tres,.res)之间自由转换的能力。它们还继承了Reference类型的引用计数内存管理。与JSON、CSV或自定义TXT文件等替代数据结构相比,它有许多明显的优势。用户只能将这些资产以Dictionary(JSON)或File 的形式导入来解析。资源的与众不同之处在于其继承了Object(对象)、Reference(引用)和Resource(资源)的功能:它们可以定义常量,所以不需要其他数据原创 2020-09-22 19:37:59 · 597 阅读 · 0 评论 -
Godot版本控制系统
什么是版本控制系统版本控制软件(VCS)是一种程序,可以用来跟踪不同版本之间的变化,同步和合并来自不同贡献者的文件,查找引入问题的特定版本等。它们主要用于编程,但也可以改编用于其他作品。Godot在创建时就考虑到了开源和VCS,因此,项目文件可以以文本格式保存,与大多数VCS兼容。文本格式VCS适用于纯文本文件(例如源代码),但不适用于二进制文件(例如样本或图像)。 场景和资源可以以VCS友好的文本格式保存(请参见清单14.4)。 您可以通过在保存时为场景选择.tscn扩展名,为资源选择.tres以及原创 2020-09-26 14:24:33 · 712 阅读 · 0 评论 -
Godot背包系统(一)
背包系统背包系统(一)背包系统(一)原创 2020-09-28 00:02:47 · 1488 阅读 · 0 评论 -
Godot背包系统(二)
背包系统(二)思路制作格子制作物品为Item添加代码Called when the node enters the scene tree for the first time.为ItemSlot添加代码在编写代码之前,先来熟悉熟悉几个Control节点的一下方法和属性。void _gui_input ( InputEvent event ) virtual由用户实现的虚拟方法。使用该方法来处理和接受UI元素的输入。参见 accept_event。示例:单击一个控件。func _gui_inpu原创 2020-09-28 00:03:16 · 1072 阅读 · 0 评论 -
Godot背包系统(三)
背包系统(三)移动背包为Inventory1添加代码放置格子移动背包首先添加一些代码移动背包。在Panel添加脚本。extends Panel#获取当前场景根节点onready var parent:=get_tree().current_scenevar drag=falsevar offset:Vector2=Vector2.ZEROfunc _input(event): if drag: parent.rect_global_position=event.global_po原创 2020-09-28 00:03:34 · 911 阅读 · 0 评论 -
Godot背包系统(四)
背包系统(四)添加物品添加物品现在有了格子,我们需要往里面添加物品,之前我们添加了数组来存储格子,现在我要遍历这些格子,如果这些格子是空的,我就放入东西。# Inventory.gd#遍历全部格子,得到空格子func get_empty_slot(): for slot in slot_array: if !slot.item: return slot新建一个场景,添加一个按钮和把背包实例添加进去。选择add item这个按钮,把信号连接到Inventory1的脚本.# In原创 2020-09-28 00:03:56 · 328 阅读 · 0 评论 -
Godot背包系统(五)
背包系统(五)实现拿起放下物品实现拿起放下物品这部分应该是最复制的部分,但是逻辑之前已经说明了,剩下的就是判断格子是否有物品,是否拿着物品,等等然后做出相应的操作:# Inventory1.gd#判断是否拿着物品var holdingItem:TextureRect#物品的位置偏移,拿起物品使调整位置var item_offset=Vector2.ZEROfunc _on_slot_gui_input(event:InputEvent,_slot:ItemSlot): if event原创 2020-09-28 18:52:43 · 584 阅读 · 0 评论