(码)
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)
看起来没进行啥真正的管理。各个状态都在它之下进行切换。新添加其它状态也一样。
...
➦