赞 | 77 |
VIP | 0 |
好人卡 | 0 |
积分 | 146 |
经验 | 0 |
最后登录 | 2024-11-22 |
在线时间 | 2152 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 14624
- 在线时间
- 2152 小时
- 注册时间
- 2016-9-20
- 帖子
- 861
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 ppspssss 于 2021-8-3 12:58 编辑
本贴仅本人猜测和研究, 请勿尝试, 看完就算
前几天看到有个人@jimmy167 说使用直播软件的弹幕来参加游戏, 我就想研究一下
https://rpg.blue/forum.php?mod=viewthread&tid=486528
可他几天没有上线, 就想有没些软件能获取一下用户弹幕发言, 搜索百度, 发现有"B站彈幕姬"
粗略说 (无視我)
并实时输出储存至一个lastrun.txt的文本中, 这就利用读取文本 "Ruby 文件的输入与输出" 的方式读取遍历每一行, 获取文本后include?("收到彈幕:") 和split(/:/) 分割出用户名 和 所说的话 然后利用枚举法自行定制指令控制游戏, 例如jimmy167的游戏是获取B站用户之名字, 当用户发出之指令为"参加",就把用户加至游戏里
##以下代码没经测试纯粹参考用 $subject=[] $subject = File.readlines("lastrun.txt") for i in 0...$subject.size #遍历所有行数 $subject[i].chomp! #!發生變化并返回 删换行符 if $subject[i].include?("收到彈幕:") nnn = $subject[i].split(/:/)[4].to_s #分割利用冒号 名字 = nnn.sub!(/ .*?说/, "") #分别删除空格和说 内容 = $subject[i].split(/:/)[5].to_s #注意前多了一个空格 end #if end #for ####以下清空文本用 (每获取指令后清空一次) f = File.open("lastrun.txt","w+") #a+意思:讀取,写入,覆盖原文件,文件不存在自动创建 f.write("") #清空用 f.close #关闭文本
##以下代码没经测试纯粹参考用
$subject=[]
$subject = File.readlines("lastrun.txt")
for i in 0...$subject.size #遍历所有行数
$subject[i].chomp! #!發生變化并返回 删换行符
if $subject[i].include?("收到彈幕:")
nnn = $subject[i].split(/:/)[4].to_s #分割利用冒号
名字 = nnn.sub!(/ .*?说/, "") #分别删除空格和说
内容 = $subject[i].split(/:/)[5].to_s #注意前多了一个空格
end #if
end #for
####以下清空文本用 (每获取指令后清空一次)
f = File.open("lastrun.txt","w+") #a+意思:讀取,写入,覆盖原文件,文件不存在自动创建
f.write("") #清空用
f.close #关闭文本
相关文章: 几万人同时用弹幕控制一个游戏人物
https://www.sohu.com/a/162950053_628730
互动游戏缺点 很明显 :
1.指令发送延迟很大,twitch直播低延迟模式也要3秒钟, B站8秒最短, 我觉得策略游戏比较合适
2.由于指令发送简单, 所以基本也只能应用于简单游戏, 玩家输入也较麻烦
3.弹幕发送间隔有限, 只能低速操作, 不能频发(B站測了是4秒)
4.指令字数有限 (B站20个中英占用1个) (twitch中英500个字符)
5.指令要公示到直播屏幕上, 还要简单易懂, 因文字较多需要1080P并且要全屏幕才看得清, 但这发弹幕又不能全屏幕缩小屏的, 比较麻烦, 而且屏幕位置极为有限, 占用很多位置
6.游戏种类限制极大, 由于种种缺点, 实质上能做的游戏屈指可数,像植物大战僵尸,塔防游戏还行,
7.指令不像键盘一样, 要每次操作也要输入
综合缺点其实直接做联机游戏更为合适,
|
评分
-
查看全部评分
|