努力赚钱养只喵 2026-01-04 封装一个复合节点,入参是初始时间,间隔时间之类的。复合节点内比较初始时间+间隔时间与全局计时器当前时间的大小就行了。全局就用一个计时器和一个频率最高的定时器,定时器发一个触发信号就行了,各节点监听到信号后用复合节点判断一下自己要不要执行,这样全局定时器那不用写那么多判断,也不用触发一次就发送一堆不同的信号,而且这样即使定时器的时间间隔不准也没事。比如定时器定间隔设置为100ms,实际每次是150ms上下触发,另一节点有1000ms间隔触发的需求,如果用信号的触发次数为10次来作为间隔,误差就比较大。所以直接抛弃这个触发次数,让节点每次自己判断一下具体时间间隔,这样大概第七次左右判断达到1000ms间隔了,是比较接近真实间隔的。而且每个节点都可以随心所欲的设置任何触发时间间隔,并且可以动态设置,比方说做了一个提高触发频率的增益道具,那么把实体的间隔时间设置为变量,在使用增益道具的时候运算修改一下这个变量,节点图每次都读取最新的间隔值去做判断,可以动态响应,而且这个增益道具数值也可以很方便的给,比如可以缩短为原来的0.9,0.8,算出来的值是不是100ms的整数倍也不用管,每次计算得到的都是尽可能接近真实值的,定时器频率越高,就越精确。如果写在定时器那里的话,那基本就固定死了触发间隔,想要精确的话要创建枚举一大堆信号。 ♥ 4
在下虓幟 2026-01-03 之前也尝试过手搓delta,它这个延迟感觉十分的稳定,也许不是延迟,就是原神那边服务器的史山或者什么奇怪的设置 不过比较巧的是我也就测了.1和.06的情况,或许延迟平均是定时器的一半?(没测别的数据) ♥ 2
不是Debu橙 2026-03-29 我天我做的音游,每次到中途节拍就对不上。我怀疑了我写的节点有问题、我计算的节拍有问题,就是没想到定时器本身有问题。后来试了下每秒触发1次的定时器,结果到60秒的时候,只触发了57次。我人都傻了。调了一个星期都调不好,就是没想到定时器本身问题啊我真服了[泠鸢yousa_大哭] ↩ 3
ATzeor 2026-01-07 信号这个东西的负载感觉不会太低,因为他目前的信号是全体广播[笑哭],也就是任何一个实体但凡有监听信号这个事件就会收到信息,如果你想要精准的搞清楚信号具体是哪个实体发出的哪个信号还得额外限定判断,而且所有这些监听都会在一个信号发出时变成活跃的去检测信号,而且信号基本都在服务器上比较容易崩溃,特别是服务器压力大的时候,也就是高峰期你做的很可能崩溃[笑哭]
Comments
封装一个复合节点,入参是初始时间,间隔时间之类的。复合节点内比较初始时间+间隔时间与全局计时器当前时间的大小就行了。全局就用一个计时器和一个频率最高的定时器,定时器发一个触发信号就行了,各节点监听到信号后用复合节点判断一下自己要不要执行,这样全局定时器那不用写那么多判断,也不用触发一次就发送一堆不同的信号,而且这样即使定时器的时间间隔不准也没事。比如定时器定间隔设置为100ms,实际每次是150ms上下触发,另一节点有1000ms间隔触发的需求,如果用信号的触发次数为10次来作为间隔,误差就比较大。所以直接抛弃这个触发次数,让节点每次自己判断一下具体时间间隔,这样大概第七次左右判断达到1000ms间隔了,是比较接近真实间隔的。而且每个节点都可以随心所欲的设置任何触发时间间隔,并且可以动态设置,比方说做了一个提高触发频率的增益道具,那么把实体的间隔时间设置为变量,在使用增益道具的时候运算修改一下这个变量,节点图每次都读取最新的间隔值去做判断,可以动态响应,而且这个增益道具数值也可以很方便的给,比如可以缩短为原来的0.9,0.8,算出来的值是不是100ms的整数倍也不用管,每次计算得到的都是尽可能接近真实值的,定时器频率越高,就越精确。如果写在定时器那里的话,那基本就固定死了触发间隔,想要精确的话要创建枚举一大堆信号。
♥ 4
看起来可以做全局加速/减速/时停之类的效果了[星星眼]
♥ 3
之前也尝试过手搓delta,它这个延迟感觉十分的稳定,也许不是延迟,就是原神那边服务器的史山或者什么奇怪的设置 不过比较巧的是我也就测了.1和.06的情况,或许延迟平均是定时器的一半?(没测别的数据)
♥ 2
你怎么知道我在学这个,特意在我要学的时候发了[嗑瓜子]
♥ 2
在写单片机成语吗?[吃瓜]
♥ 1 ↩ 1
up可以看看我发布的时钟管理器,TickManager
♥ 1
服务端发的信号是否会有不稳定延迟?以及,拆成信号的话,执行流也会被拆分,操作安全性存疑,不知道应用场景是什么呢
♥ 1 ↩ 6
太强了
我天我做的音游,每次到中途节拍就对不上。我怀疑了我写的节点有问题、我计算的节拍有问题,就是没想到定时器本身有问题。后来试了下每秒触发1次的定时器,结果到60秒的时候,只触发了57次。我人都傻了。调了一个星期都调不好,就是没想到定时器本身问题啊我真服了[泠鸢yousa_大哭]
↩ 3
信号会不会负载很大啊
话说千星奇遇能实现任务调度吗? 最基本的用定时器实现每秒调用一次任务a,每10s调用一次任务b什么的 还有再额外写几个中断返回啥的
为什么还要进行模运算?都要一个个判断了直接写不好?难道是为了之后写循环用的?
自定义变量变化时,咋用呀(咋搞都没反应,甚至还错误,主播主播帮帮[星星眼])
↩ 5
这题我会,循环脚本(
信号这个东西的负载感觉不会太低,因为他目前的信号是全体广播[笑哭],也就是任何一个实体但凡有监听信号这个事件就会收到信息,如果你想要精准的搞清楚信号具体是哪个实体发出的哪个信号还得额外限定判断,而且所有这些监听都会在一个信号发出时变成活跃的去检测信号,而且信号基本都在服务器上比较容易崩溃,特别是服务器压力大的时候,也就是高峰期你做的很可能崩溃[笑哭]
已收藏[喜欢]
信号可能负载比较大,我也不清楚