【Godot4.x】自定义类
文章平均质量分 76
巽星石
业余编程爱好者,Godot游戏引擎爱好者
展开
-
【Godot4.3】复合路径类myPath
之前编写过一个基于指令绘图的类交myPoint,但是只涉及折线段生成。这次我基于SVG的<path>标签路径指令的启发,实现了一个能够获得连续绘制的直线段、圆弧和贝塞尔复合路径的类型myPath。可以使用绘图指令方法或字符串形式的绘图指令解析来创建符合路径。通过points属性可以获取路径的点集,并用于CanvasItem绘图函数绘制。原创 2024-10-04 17:05:29 · 284 阅读 · 0 评论 -
【Godot4.3】三角形类
在GDSCript中你想要表示一个平面三角形,只需要设定3个点的位置,也就是3个Vector2就行了,或者一个size()==3的。但是想要进一步处理三角形,获得它的一些几何特征,比如:某个内角的角度值,角平分线、垂直平分线、中线、高线,还有对应的内接圆、外接圆圆心与半径等,就会变得比较困难。本篇就讲述如何在Godot4.3中,用类来表示三角形,并获取它的几何特征。本文所述,是三角形几何特性获得的初步,API肯定会大改,只是作为初步试验成功的结果。三角形是一种特殊的多边形,一些几何特性值得深入研究。原创 2024-09-23 23:44:29 · 451 阅读 · 0 评论 -
【Godot4.3】自定义数列类NumList
数列是一种特殊数组。之前写过等比、等差数列、斐波那契等数列的求取函数。今天就汇总到一起,并添加其他的一些数列,比如平方数、立方数、三角形数等。这里我首先采用以前比较喜欢的静态函数库的写法,然后在其基础上改进为基于类继承的类型体系。原创 2024-09-23 17:00:24 · 1374 阅读 · 0 评论 -
【Godot4.3】栈和队列的模拟与应用
队列(Queue)和栈(Stack)其实都是一个基于事务列表的数据结构。GDScript虽然没有直接提供,但通过数组,可以轻松的实现队列和栈的效果。为了更好的语义化和限制数组多余操作,我们可以采用自定义类来封装队列和栈。通过内部的数组来存储实际的事务列表。在其他语言的队列和栈设计中,往往要限制队列或栈的的长度。超过长度,将限制新的元素入栈或入队。因为继承关系的设计,所以我们只需要在Stack中增加一个max_size属性,然后在push()判断是否超过指定长度就可以限制新元素插入了。修改后的。原创 2024-09-23 14:30:34 · 340 阅读 · 0 评论 -
【Godot4.3】基于状态切换的游戏元素概论
一些游戏元素,其实是拥有多个状态的。比如一个宝箱,有打开和关闭两个状态。那么只需要设定两个状态的图片,就可以了。建筑物、生物、角色等等都可以用类似的结构存储多种状态,并进行切换。状态可以是静帧,也可以是一段循环帧动画。基于SpriteSheets或序列帧的帧动画搞的就是基于图片的状态划分这一套。但是你需要用这样的东西去创建多个状态的动画,再在脚本中进行切换。通过从结构上就设计和管理游戏元素的多状态。我们可以更少的依赖等对游戏元素状态的划分,我们可以更直观和简单的切换元素的状态和外形。原创 2024-09-22 15:38:42 · 436 阅读 · 0 评论 -
【Godot4.3】链条结构图形与生物模拟概论
本篇讨论的内容是笔者基于B站视频《一种简单的程序化动画技术_哔哩哔哩_bilibili》所演示的内容,简单实现的Godot版本。主要探讨如何设计一种关节链条结构,能够跟随鼠标进行位置运动,并用圆形链条结构模拟软体动物动态爬行的过程和其身体本身。本文到发布为止,并没有完全实现视频中全部的内容,后续可能会在本文基础上扩展和更新。原创 2024-09-21 20:21:50 · 1247 阅读 · 0 评论 -
【Godot4.3】CanvasShape资源化改造
通过把之前自定义的类变成资源类型,将可以同时用于CanvasItem绘图和创建扩展的Node2D和Polygon2D节点等。本篇就完成类的资源化改造,并记录改造过程和思路。通过将CanvasItem绘制的图形编写为自定义类,完成了第一次简单的进化而将变成自定义资源类型,则完成了二次进化,它将可以用于Node2D、Control、Polygon2D以及其他自定义节点上,也可以单独用于代码形式的CanvasItem绘图通过在类、场景节点或自定义节点中设定。原创 2024-09-06 00:35:40 · 1053 阅读 · 0 评论 -
【Godot4.1】自定义纯绘图函数版进度条控件——RectProgress
一个纯粹基于CanvasItem绘图函数,重叠绘制矩形思路实现的简单进度条控件。2023年7月编写。之所以将它作为单独的示例发出来,是因为它代表了一种可能性,就是不基于Godot内置的控件,而是完全用绘图函数或其他底层API形式来创建自定义控件的可能性。这只是一个简单的自定义进度条控件,完全依赖于CanvasItem绘图函数实现。目前版本只定义了简单的属性和参数,可以基于此进行进一步的改进。在自定义控件方面,多了一种思路。原创 2024-09-02 16:51:08 · 493 阅读 · 0 评论 -
【Godot4.3】绘图函数的类化封装尝试——CanvasShape
这是2024年7月份的一项工作,在研究外XML和SVG解析与生成过后,想到可以将自己写的绘图函数库拆分为图形类,于是就有了类。它包含了从填充、轮廓、阴影、虚线、顶点和中心点绘制的全部要素。只需要给定points属性和调用draw()方法就可以在CanvasItem节点上绘制大多数多边形和折线了。是一个可以包含多个或的元素,基于它,可以创建树形的图形元素结构。方便动态管理和输出保存。原创 2024-09-01 16:12:37 · 1106 阅读 · 0 评论 -
【Godot4.3】MarkDown解析和生成类 - MDdoc
一年多前写过GDSCript静态函数库用来在Godot中生成MarkDown文档内容。用在了自己的插件项目Script++中,用来快速生成脚本文件API文档的框架内容。这次编写了一个集解析、生成MarkDown为一体的MDdoc类,可以更轻松的解决MarkDown文档的问题。因为基础工作在5月份已经完成,我也是拖了好久重新拾起,所以就以此文为契机,复习自己的代码,并做一个比较详尽的文档。原创 2024-09-01 01:09:26 · 1170 阅读 · 0 评论 -
【Godot4.2】EasyTreeData通用解析
之前在《【Godot4.2】Tree控件自定义树形数据ETD及其解析》一文中实现了对带缩进的层级结构文本的解析,并将其用于Tree控件的列表项构造。不过当时并没有实现抽象的类。今天花了一点时间专门设计了这个类,可以更方便的构造和解析ETD数据,并转化为其他格式。通过内部维护一个树形结构,来存储ETD数据。条目1条目1.1\\条目1.2条目1.2.1\\条目1.2.2\\\\条目1.3\\条目1条目1.1条目1.2条目1.2.1条目1.2.2条目1.3条目1。原创 2024-04-30 01:24:00 · 900 阅读 · 0 评论 -
【Godot4.2】自定义Todo清单类 - myTodoList
在写myList类的时候,就想到可以写一个类似的Todo清单类。原创 2024-04-27 22:19:51 · 966 阅读 · 0 评论