技术栈
gdscript
巽星石
2 个月前
godot
·
gdscript
·
碰撞
·
图形
【Godot4.3】基于中心点连线的矩形重叠检测
这个方法是我自己想到的,经典的矩形重叠(碰撞)检测,是一段很复杂的逻辑判断,而根据两个矩形中点连线,与两个矩形宽度和高度之和一半的比较,就可以判断两个矩形是否重叠,并且能够计算出重叠向量。
巽星石
2 个月前
godot
·
gdscript
·
斐波那契
·
数列
【Godot4.3】自定义数列类NumList
数列是一种特殊数组。之前写过等比、等差数列、斐波那契等数列的求取函数。今天就汇总到一起,并添加其他的一些数列,比如平方数、立方数、三角形数等。
巽星石
3 个月前
godot
·
gdscript
·
绘图
·
自定义控件
·
线框图
【Godot4.3】基于纯绘图函数自定义的线框图控件
同样是来自2023年7月份的一项实验性工作,基于纯绘图函数扩展的一套线框图控件。初期只实现了三个组件,矩形、占位框和垂直滚动条。
巽星石
4 个月前
json
·
godot
·
gdscript
·
plantuml
用PlantUML可视化显示JSON
PlantUML除了绘制UML中的一些标准图之外,也可以以图形化的方式显示一些其他图形或数据形式的结构,这其中就包括JSON。
巽星石
4 个月前
godot
·
gdscript
·
uml
·
plantuml
·
类图
用PlantUML和语雀画UML类图
首先阐述一下几个简单概念:在Godot中,我们使用GDScript进行游戏或类库开发时,也需要涉及面向对象开发和类图等,用于清晰表达自己的思路或详实自己的文档。
巽星石
7 个月前
godot
·
gdscript
·
todo
·
列表
·
清单
【Godot4.2】自定义Todo清单类 - myTodoList
在写myList类的时候,就想到可以写一个类似的Todo清单类。基于本文所写的这个类实际上已经可以写简单的清单应用了。当然为了能用于打印输出,所以我也设定了以纯字符形式输出的方法。
巽星石
7 个月前
godot
·
gdscript
·
tree
·
字符串解析
·
etd
【Godot4.2】EasyTreeData通用解析
之前在《【Godot4.2】Tree控件自定义树形数据ETD及其解析》一文中,实现了对带缩进的层级结构文本的解析,并将其用于Tree控件的列表项构造。
巽星石
8 个月前
godot
·
gdscript
·
网格
·
vector2
·
几何图形
·
刻度线
【Godot 4.2】常见几何图形、网格、刻度线点求取函数及原理总结
注意:本篇基础内容写于2023年7月,由3篇文章汇总而成。ShapePoints函数库及其使用会单独发文贴出。本篇更接近原理讲解。
巽星石
8 个月前
godot
·
gdscript
·
旋转
·
控件
【Godot4.2】实现鼠标控制对象(控件)旋转
在一些情况下我们可能需要使用鼠标控制对一个图形或对象(如控件)进行旋转。 通过如下图的分析: 我们可以知道:
巽星石
8 个月前
godot
·
gdscript
·
寻路
·
网格
·
a星
·
astargrid2d
【Godot4.2】2D导航02 - AstarGrid2D及其使用方法
AstarGrid2D是Godot4.0新增的A*寻路辅助类型。可以看做是Astar2D的加强版。它允许你通过设置其size和cell_size属性来创建一个虚拟的网格。
巽星石
9 个月前
godot
·
gdscript
·
函数库
Godot自定义控件样式语法解析
本篇原始文章写于2023年8月7日,存储在我的语雀文档中。但是语雀分享有诸多不便,为了让更多Godoter更轻松的搜到和看到,就转过来了。 这个项目我上传了Github,后续会贴上链接。
巽星石
9 个月前
godot
·
gdscript
·
菜单
·
自定义数据
·
字符串解析
【Godot4.2】基于MenuBar和PopupMenu的菜单栏生成自定义数据EMBD及其解析
用Godot的MenuBar和PopupMenu手动创建有复杂结构和设置选项的菜单栏总是一件繁琐的事情,用代码形式也无法十分优雅。
张学徒
1 年前
游戏
·
godot
·
gdscript
【Godot】解决游戏中的孤立/孤儿节点及分析器性能问题的分析处理
Godot 4.1因为我在游戏中发现,越运行游戏变得越来越卡,当你使用 Node 节点中的 print_orphan_nodes() 方法打印信息的时候,会出现如下的孤儿节点信息
DiamondC++
1 年前
游戏
·
godot
·
康威的生命游戏
·
gdscript
基于Godot的康威的生命游戏
在_ready()函数中创建了一个“滑翔机”,坐标系以左上角为原点 创建了一个定时器,每隔0.1秒调用一次_on_timer_timeout(),所以更新代码也在这