(码) Godot建立TCP网络发送文件 2024年3月19日    godot tcp 需求:之前实现过通过HTTPClient实现上传与下载。但全都来服务器上下载文件,导致服务器压力增大。特别是同一个局域网中,完全可以“共享”下载。即先下载完的做服务器,供其它客户机下载。比如在网吧中。 步骤:选择文件->创建服务器->创建客户端->向客户端发文件/向服务端发文件 以下实现利用TCP建立服务器,与客户机互发文件。代码尚可优化。 ...
(原) 穷人版服务器放家 2024年3月18日    服务器 需要将一台游戏开放到公网,供大家娱乐。但是租用服务器或托管还是不便宜。 (看到一家号称100M独享8核16GB,5800元/年,已算便宜) 看成都电信149家庭套餐(500M下行/50M上行),似乎现在还能申请到公网IP。不管是IPV4还是IPV6都不要紧。 再网上购一台云服务器作跳转,可能5、6百元5-10MB。 ...
(摘) Godot图片拖动 2024年3月18日    godot 拖动 在游戏的“背包系统”中经常会需要物品的拖动,Godot内置了拖动相关函数。 B站转载的视频学习 bool _can_drop_data(at_position: Vector2, data: Variant) 是否允许拖动/接收(目标) void _drop_data(at_position: Vector2, data: Variant) 拖动传递来的数据(目标) Variant _get_drag_data(at_position: Vector2) 拖动对象数据(源) 看起来只有Control类型下的节点类型有完全的几个函数。而Node2D下只有_get_drag_data函数。 ...
(原) 在Godot中嵌入浏览器 2024年3月17日    godot 浏览器 如果能在Godot中嵌入浏览器,将扩展更多的应用场景。比如我只想将Godot用于制作普通的GUI。 下载Github上的项目,在Win下实现还是很快速简单的。 进入当前4.x版本下载有2D和3D示例可查看。 在2D示例中,需自行在当前目录下建立cef_artifacts目录,将下方下载的build目录内容复制到cef_artifacts中。即可在Godot看到效果。 ...
(原) Godot生成二维码 2024年3月17日    godot 二维码 游戏的分享或者通过手机上传照片等场景下,需要在界面中显示二维码。 Github 这是一个生成二维码的类,原理不复杂。把作者的classes目录复制到自己项目下即可引用。 作者开发于4.1版本,在Godot4.3上测试通过。 ...
(原) Godot用代码加载Shader 2024年3月17日    godot 代码 shader 对于代码党,或在某些情况下,更适合用代码。 var shader = ShaderMaterial.new() var gradient = load("res://shader/gradient_texture_2d.tres") shader.shader = load("res://shader/light.gdshader") # 加载shader shader.set_shader_parameter("light_vector",gradient) # 设置参数 $logo.material = shader # 将shader加载 … ...
(坑) Godot之tilemap 2024年3月15日    tilemap godot 基于标题问题,一个一个解决。
(坑) Godot小地图 2024年3月15日    基于标题的问题,一个一个解决。
(摘) Godot 自定义类 2024年3月14日    godot 多此一举的部份,只是为了举例 extends Node class_name ease_timer var timer :int = 0 ## 定时秒 var timerTask var obj signal timer_stop func _init(set_obj :SceneTree, set_timer :int) -> void: timer = set_timer obj = set_obj func start(): timerTask = obj.create_timer(timer) await timerTask.timeout … ...
(摘) Godot状态鸡(状态机) 2024年3月14日    状态机 godot 状态鸡就是 处理对象状态的机器。目的还是简化大型程序,分而治之。避免“史山代码”。 管理机(StateMachine) 顾名思义,即进行状态的管理。其实这里的代码就只是把初始状态传入(_ready中),一些对象(管理机自己)传入。 然后将各事件传给各状态(handle_input/update/physics_update)。定义一个切换状态的函数(transition_to) 看起来没进行啥真正的管理。各个状态都在它之下进行切换。新添加其它状态也一样。 ...