
Godot
Godot 探索和一些功能,经验分享
张学徒
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Godot】【BUG】4.x NavigationAgent 导航不生效
生效,而我设置的导航层不是第一层,然后我新建了一个 TileMap 将导航的瓦片设置到这个 TileMap 上了,如图。这样就解决了问题,不用再修改默认设置的东西了,如果你有更好的办法可以发在评论里。试了半天才发现原来默认。原创 2023-10-21 22:51:41 · 966 阅读 · 0 评论 -
【Godot】给不规则的 TileMap 划分子区域块部分代码
给不规则的 TileMap 划分子区域块部分代码\原创 2023-10-20 22:03:43 · 847 阅读 · 0 评论 -
【Godot】解决游戏中的孤立/孤儿节点及分析器性能问题的分析处理
后面我又去查看分析器中的性能波动的位置,游戏开始后,打开调试器里的分析器的开始按钮,下图左上角,点过之后变成“停止”按钮。比如我得到了一个固定的节点实例ID,然后我通过一下方式进行获取输出这个节点、场景、脚本信息,来定位确定是在哪个地方出现的问题。作为格式输出,可以多运行几次查看是否节点实例 ID 是否是相同的,通常不是随机性很大的,一般大概率是相同的。因为我在游戏中发现,越运行游戏变得越来越卡,当你使用 Node 节点中的。方法打印信息的时候,会出现如下的孤儿节点信息。原创 2023-09-17 23:11:07 · 1091 阅读 · 3 评论 -
【Godot】添加 HashSet 集合类对象
Godot 添加 HashSet 集合类对象。原创 2023-05-25 13:36:39 · 617 阅读 · 0 评论 -
【Godot】自动注入节点的属性工具类
自动设置唯一名称的属性节点属性,不需要再手动获取设置。原创 2023-05-16 16:57:28 · 536 阅读 · 1 评论 -
【Godot】自定义预览场景图片,居中显示场景图片
【代码】【Godot】自定义预览场景图片,居中显示场景图片。原创 2023-05-13 12:51:44 · 888 阅读 · 0 评论 -
【Godot】根据 Image/Texture 创建不规则碰撞形状
【代码】【Godot】根据 Image/Texture 创建不规则碰撞形状。原创 2023-04-12 00:28:23 · 965 阅读 · 0 评论 -
【Godot】运行时出现极其缓慢的情况
的位置,之后开始游戏运行后会变得特别的卡,不知是何原因,甚至出现下面的错误。更改位置为正常的数字位置之后好了,所以设置位置尽量不要超出。有些初始化会加载一些预制模板的地图,然后我将其放到了。原创 2023-03-29 22:18:16 · 1063 阅读 · 1 评论 -
【Godot】数据响应的方式执行功能
Godot Engine 版本:4.0 beta 6在这个教程中,学会理解以数据为主的进行处理执行逻辑的代码编写方式,虽然看似简单,但是确是方便又好用。以及下方会有一个 buff 的示例,触类旁通,你可以设计更高复杂更强大的功能。原创 2022-11-23 23:17:36 · 852 阅读 · 0 评论 -
【Godot 4.0】一个简单的匿名方法的使用lambda
Godot 4.0 简单的 lambda 和匿名方法的使用原创 2022-10-19 23:51:51 · 1329 阅读 · 0 评论 -
【Godot Shader】替换颜色
Godot 着色器,替换图片中指定的颜色原创 2022-09-12 17:47:14 · 1145 阅读 · 1 评论 -
【Godot】项目结构设计
对Godot目录文件进行管理的目录结构设计原创 2022-09-04 01:39:03 · 987 阅读 · 0 评论 -
【Godot】保存当前场景中所有的子节点的属性
我使用 Godot 制作应用程序所用到的功能,对一些需要用到的属性进行保存。稍微修改也可以根据节点进行对一些游戏节点的数据的保存功能,思路都是一样的。 常量用于判断节点是否包含其中的属性,如果存在,则保存节点的这个属性的数据。注意下面 方法里的 做了只对 Control 进行保存的限制,删除即可对全部节点进行保存。添加节点到场景中,默认节点都是没有任何内容的,运行后修改节点的属性,然后关闭再打开,即可看到节点存在了内容,对制作应用程序来说很方便。......原创 2022-07-07 14:54:00 · 977 阅读 · 0 评论 -
【Godot】菜单脚本,只用传入字典数据即可创建多级菜单
Godot 3.5 rc2将脚本挂载到一个 HBoxContainer 或 VBoxContainer 节点上下面 test() 方法即是一个示例,可以扩展脚本重写 _menu_pressed() 方法操作点击的菜单项,或者连接 menu_pressed 信号进行对点击的菜单进行操作#=====================================================# 菜单列表#===========================================.原创 2022-05-27 17:14:31 · 797 阅读 · 0 评论 -
【Godot】节点的碰撞与碰撞掩码的计算
Godot 3.4.2判断碰撞类型的节点是否在某个层,或者掩码是否能检测到哪个层的方法,这里就需要用到二进制的位运算了,代码如下## 是否在这个碰撞层中static func is_in_layer(node: CollisionObject2D, layer: int) -> bool: return node.collision_layer & layer == layer## 是否在这个碰撞掩码中static func is_in_mask(node: Collis.原创 2022-05-22 01:20:17 · 1080 阅读 · 0 评论 -
【Godot】让节点根据 Path2D 移动
Godot 3.5根据 Path2D 路径移动,可以设置多个节点,类似于 Tween 节点,调用 play 方法进行移动节点play(节点,移动到终点所需时间)#============================================================# 节点路径移动#============================================================# * 调用 set_custom_move_method 方法设置自.原创 2022-05-05 22:30:33 · 1385 阅读 · 0 评论 -
【Godot Shader】描边
Godot 3.4.2让图片内容描边shader_type canvas_item;uniform vec4 color : hint_color = vec4(1.0);uniform float width : hint_range(0, 50) = 1.0;uniform int pattern : hint_range(0, 2) = 0;uniform bool inside = false;uniform bool add_margins = true;uniform b.原创 2022-05-02 12:55:37 · 1403 阅读 · 0 评论 -
【Godot】状态机设计和使用方式
Godot 3.4.2下面是一个简单的有限状态机基类,之后是一个使用状态机的思路State.gd#============================================================# State#============================================================# 子状态#============================================================# .原创 2022-03-16 13:13:38 · 4245 阅读 · 1 评论 -
【Godot】在Godot中模仿实现接口功能
Godot 3.4.2在接口节点中写下方法后,如果父节点没有实现这个方法,则会进行提示,运行时则会进行断定并提示(断言)。NodeInterface.gd#============================================================# Node Interface#============================================================# 节点需要实现的功能#===================.原创 2022-03-15 20:32:11 · 1244 阅读 · 0 评论 -
【Godot】一个节点发射器(泼水机)
Godot 3.4.2#============================================================# Launch Bullet#============================================================# 发射节点# * 调用 control 方法进行使用#============================================================# @datetim.原创 2022-03-10 00:36:07 · 756 阅读 · 0 评论 -
【Godot】一个简单的平台角色控制,包括土狼时间、输入缓冲
Godot 3.4.2一个简单的平台角色的控制,包括土狼时间,跳跃输入缓冲可以看这篇文章:平台跳跃游戏中的“土狼时间”#============================================================# Simple Platform Controller#============================================================# 简单的平台角色控制# * 添加这个子节点到 KinematicBod.原创 2022-03-05 23:49:47 · 3712 阅读 · 0 评论 -
【Godot】相机抖动
Godot 3.4.2有两种方式Camera2D 节点控制Godot 实现镜头晃动震动效果,让场景变得更加惊险刺激吧!extends Camera2Dexport (OpenSimplexNoise) var noise : OpenSimplexNoiseexport (float, 0, 1) var trauma : float = 0.5export (float, 0, 1) var decay : float = 0.6export var time_scale : .原创 2022-03-03 21:08:26 · 997 阅读 · 0 评论 -
【Godot】一个简单的抛物线
Godot 3.4.2# 抛物线extends Node2D## x 轴阻力export var resistance = 300## 重力export var gravity = 800## 计算阻力后的速度var _resistance = 0.0var motion_velocity = Vector2(0,0)# 投掷的方向和力度func force(value: Vector2): _resistance = resistance / value.x mo.原创 2022-02-28 19:15:00 · 867 阅读 · 2 评论 -
【Godot】物品数据数据管理
Godot 3.4.2用来管理物品的数据,废话不多说,直接上代码,核心代码如下:#============================================================# Item Manager#============================================================# 物品管理# * 调用 add_item 方法传入 Dictionary 类型的数据进行添加物品数据#==================.原创 2022-02-20 00:49:45 · 3996 阅读 · 1 评论 -
【Godot】SkillNode 技能节点
Godot 3.4.2Gitee 下载:https://gitee.com/LaoDie1/skill-node角色的功能逻辑,按照攻击、施放技能时的阶段的逻辑执行功能。下载后打开 TestSkill.tscn 场景,按下空格进行施放技能注意节点设置了施放的时间间隔等属性分为以下几个阶段:准备阶段,开始抬手执行功能开始功能阶段持续阶段功能结束阶段,开始放手完全结束功能冷却阶段刷新可使用每次执行都会发出一个信号,通过连接这个信号去执行不同阶段的功能,即实现了角色的功能.原创 2022-02-15 08:36:18 · 4192 阅读 · 4 评论 -
【Godot】添加菜单按钮
Godot 3.4.2快速方便的添加菜单,下面代码中,我添加了两个菜单 File、Edit,## 菜单列表extends HBoxContainerconst MenuKey = { "MenuName": "menu_name", 'ScanCode': "scancode", "Control" : 'control', "Command" : 'Command', "Shift": "shift", "Alt": "alt",}## 通过添加修改下面的数据进行添加菜.原创 2022-02-12 17:37:38 · 2520 阅读 · 0 评论 -
【Godot】通过属性检查器显示对应节点的脚本属性
Godot 3.4.2脚本代码如下,通过继承这个脚本,重写 get_prop_nodes 方法即可#============================================================# Base Role#============================================================# 最基本的角色功能,可对方法进行重写展示对需要修改属性的节点,# 展示到当前节点的属性检查器中#============.原创 2022-02-08 12:07:21 · 2240 阅读 · 0 评论 -
【Godot】组合键的实现
Godot 3.4组合键,连招时对按键的判定,实现代码。底部有使用的示例文件关键代码:#==================================================# Componse Input - 组合输入#==================================================# * 延迟判断按键是否被按下,防止操作过于快速导致组合键失效# * 例,按下:小键盘方向键左+空格,则触发操作:# add_mapper(# "刺" .原创 2021-12-24 17:21:42 · 2939 阅读 · 2 评论 -
【Godot 】FunctionTree 功能树 简单使用教程
Godot 功能树项目地址:Apprentice/FunctionTree (gitee.com)使用 FunctionTree 快速开发角色功能示例教程在 test 文件夹中有个 test01 示例,可进入参考查看添加基本节点在一个 KinematicBody2D 节点下点击添加节点,搜索 FunctionRoot 点击添加。添加后选中 FunctionRoot ,右侧将会出现一列可添加的节点列表,双击天机 Blackboard、Standard、Custom 节点场景根节点更名为原创 2021-12-17 18:02:54 · 1493 阅读 · 0 评论 -
【Godot】在 Godot 中使用代理模式将一些通用的功能封装起来
在 Godot 中使用代理模式制作功能原创 2021-12-01 01:48:20 · 7677 阅读 · 0 评论 -
【Godot】Godot 插件制作流程
Godot 3.4 beta5以下为创建一个插件基本工作流程,也许与一些人的不同,有更好的可以在评论区交流分享。如果你只想了解一下插件制作流程的话,下面的代码不需自己手动写,直接复制粘贴就好。创建插件在 Godot 中创建添加插件很简单,点击编辑器左上角的 Project 菜单在弹出的 Project Settings 窗口中,点击 Plugins 选项卡,点击 Create 按钮弹出 Create a Plugin 窗口,在里面输入 PluginName(插件名)、Subfolder(.原创 2021-10-24 21:16:25 · 5326 阅读 · 0 评论 -
【Godot】Tree 调用 create_item 方法时报错
Godot 3.3.3报错信息为:create_item: Condition "blocked > 0" is true. Returned: __null <C++ Source> scene/gui/tree.cpp:3102 @ create_item() <Stack Trace> FileTree.gd:82 @ _on_FileTree_item_selected()其中可以看到一个关键词 blocked,我是准备在选中其中一个 TreeIt.原创 2021-09-14 21:56:57 · 409 阅读 · 1 评论 -
【Godot】使用代码控制点击按钮
Godot 3.3直接上代码## 点击按钮## @button 要点击的鼠标func click_button(button : BaseButton) -> void: # 按下鼠标左键 var event = InputEventMouseButton.new() event.pressed = true event.button_index = BUTTON_LEFT button._gui_input(event) # 弹起鼠标左键 event = Input.原创 2021-09-04 09:17:05 · 2048 阅读 · 2 评论 -
【Godot】将 Camera 的视野范围限制在 TileMap 内
Godot 3.3.2将摄像机视野范围限制在 TileMap 的范围内##==================================================# Tile Map Group##==================================================# 将摄像机视野范围限制在当前节点下的所有 TileMap 大小内##==================================================# @pat.原创 2021-08-27 00:57:51 · 1306 阅读 · 0 评论 -
【算法】根据每个值设置的概率随机返回对应值
Godot 3.3.3GDScript 1.0对每个值赋予一个概率,然后根据概率获取每个值以下为 Godot 3.3.3 编辑器下的代码,其他语言稍加修改即可toolextends EditorScript# 执行代码func _run() -> void: # 让每次执行的随机都不同 randomize() var value_list = [1, 2, 3, 4, 5] var probability_list = [0.5, 0.3, 0.7, 0.1, 0.3.原创 2021-08-19 15:48:23 · 491 阅读 · 0 评论 -
【GDScript】Godot 插件中,获取添加时的节点
Godot 3.3.3如果不知道如何开发 Godot 插件,请先学习最基本的插件开发方法官方文档:编辑器插件我们新建一个插件:最后点击 create 创建。在我们创建的插件脚本里写入如下代码:toolextends EditorPluginfunc _enter_tree() -> void: # 连接场景树的 node_added 信号(节点被添加信号),连接到 _scene_node_added 方法 get_tree().connect("node_added.原创 2021-08-18 16:13:45 · 988 阅读 · 0 评论 -
【Godot】节点的 ready init enter_tree process 方法执行顺序
Godot 3.3.2场景节点在 _ready() _init() _enter_tree() process() 写上输出语句后,执行的输出结果可以看到,单个节点的执行顺序:_init() > _enter_tree() > _ready() > _process() > _exit_tree()除了 _ready() 是先执行完子节点,其余都是先执行父节点中的方法,然后执行子节点的...原创 2021-07-08 23:52:38 · 2746 阅读 · 0 评论 -
【Godot】动态的属性列表 示例
Godot 3.3.2动态的属性列表先看效果(注意右边的属性面板):代码如下:toolextends Node2Dvar script_count = 0 setget set_script_countvar __script_list = []var __script_data = {}func set_script_count(value): # script_count 值跟上次相差多少 var diff = value - script_count # .原创 2021-07-04 14:27:09 · 1677 阅读 · 1 评论 -
行为树(二)制作成 Godot 插件
行为树做成插件打开 项目设置(Project Settings)点击插件(Plugins)选项卡,点击创建(Create)按钮。创建插件脚本,如下创建后,文件系统中会出现一个 addons 插件文件夹,里边有个刚刚我们创建的插件的文件夹 behavitor_tree_xuetu,然后把我们之前创建的行为树脚本 src 文件夹拖拽到 behavitor_tree_xuetu 文件夹下,如图:双击打开 plugin.gd 脚本,写入如下代码,添加自定义类型## Behavior Tree 行原创 2021-06-22 13:11:32 · 688 阅读 · 1 评论 -
【Godot】行为树(一)了解与设计行为树代码
行为树介绍行为树是个节点树,父节点通过不断遍历子节点,根据不同类型的节点执行不同的分支。最终调用叶节点执行功能。行为树也不难理解,他就像代码逻辑一样,只是用节点的方式展现出来,而且比代码更直观。如果行为树中写有各种行为功能的节点的话,即便没有写过代码的,稍微学习一下,只用行为树也可以做出具有一定的智能行为的角色。行为树采用节点描述行为逻辑。主要有:选择节点、顺序节点、并行节点、修饰节点、随机节点、条件节点、行为节点。一棵行为树表示一个AI逻辑。要执行这个 AI 逻辑,需要从根节点开始遍历整棵树,遍原创 2021-06-22 10:16:27 · 4763 阅读 · 4 评论