Project1

标题: 【RGU】基于OpenGL&SDL2 RGSS 1/2/3 通用Runtime [打印本页]

作者: Admenri    时间: 2021-7-24 22:07
标题: 【RGU】基于OpenGL&SDL2 RGSS 1/2/3 通用Runtime
本帖最后由 Admenri 于 2024-3-1 23:09 编辑
关于RGU                                                                                                                 
Ruby Game Universal (RGU)是使用SDL2编写的原版RGSS 1/2/3 Player替代品,
借助OpenGL绘图的强大快速,与Ruby3.0的高效,可以使需要大量运算绘制的游戏性能得到很大提升,
同时RGU提供了部分与RGD功能兼容的API,如shader 全键盘 鼠标等,
同时由于丢掉了原版的Ruby1.9引擎,虽然Ruby3.0在兼容性方面略差,但在性能上仍有很大提升,
由于所有库均从源代码开始构建,所以RGU提供了原生的64位Runtime,
同时得益于SDL2的强大跨平台功能,后续将会推出其他平台移植版本。

项目灵感来源:https://rpg.blue/thread-480426-1-1.html
项目思路来源:RGD   joiplay:https://joiplay.cyou/

2024.3.1补充
重写开源版本,此版本不再维护
https://rpg.blue/thread-495686-1-1.html

注意事项                                                                                                                 
由于使用SDL编写,为了跨平台考虑,删掉了读取注册表部分,
因此RTP需要手动设置或直接拷贝一份RTP数据

* 如果游戏标题等出现乱码请将ini转换为utf-8编码

本程序支持直接从zip或7z等直接读取数据(包括音频)

音频解码器支持:
MP3 √
OGG √
WAV ?

图像解码器支持:
JPEG √
PNG √
BMP √

runtime窗口可在运行时手动调节大小,或使用
Graphics.resize_window(w, h)

视频解码器支持:
VP8/VP9 + Vorbis(不支持Opus)
(实测支持1080P 60FPS 但并没什么用
播放视频时由于渲染器冲突所以会新建一个窗口播放,
可按ESC跳过

由于使用SDL库编写,字体将不再从系统字库读取,
需要附带额外字体文件(自行选择,文件名Default.ttf,自带微软雅黑)

扩展API方面已添加全套Fiddle和Zlib支持:
Fiddle::Pointer
Fiddle::Handle
Fiddle::Function
Fiddle::Closure
Zlib::Deflate
Zlib::Inflate



程序支持 XP VX VX Ace
默认自动通过Scripts的扩展名判断,
已开放RGSS3全部函数兼容RGSS1/2

截图展示                                                                                                                 





各种下载                                                                                                                 

示例游戏(很久没更新了):
https://admenri.lanzoui.com/b0d3cy7rc
密码:32x2

专用脚本(更新中):
https://admenri.lanzout.com/b0d3d1u8j
密码:gg83

主程序+帮助文档(2022.4.17更新):
https://admenri.lanzoui.com/b0d39qltc
密码:2m42

常见问题                                                                                                                 

Q: 我的程序无法打开并提示找不到OpenAL32.dll
A: 安装OpenAL(上方附带),注意不要直接把dll扔到System32

Q: 为什么打开游戏后感觉变快了很多,而且FPS可以到1000+
A: 启用显卡设置中的垂直同步(或者在脚本里写Graphics.vsync = false)

Q: 支持Windows XP吗
A: 实测不支持(SDL2问题,但其实凭XP性能已经带不起了)

Q: 为什么有时候会出现奇怪的BUG
A: 这个可能和我写的有关系,但并不排除显卡驱动本身BUG造成的影响,
所以可以更新显卡驱动试试

Q: Game.exe与Game_console.exe
A: 一个没有控制台一个有调试控制台,建议最终发布使用前者

Q: 32位与64位
A: 32位可以【稍微】用用Win32API
64位不行(



作者: zhangc    时间: 2021-7-24 22:17
前排支持!太棒了!
作者: Xuancobone    时间: 2021-7-24 22:24
顶起来,大佬级作品!
作者: 非常白菜    时间: 2021-7-25 01:13
当初群里看到时候简直惊为天人,对于我这种ULDS晚期患者使用RGD最头痛的就是其超高的内存占用了,随便读两个图轻松破G,这个问题在此Runtime下得到解决,而且对大体积图片资源读写性能极佳,应该讲是同类最佳没有之一

另外这个帖子感觉放VA区更合适一些,虽然Runtime是兼容RGSS 1/2/3的,不过发这里实在没啥人看  
我来召唤一下小黄鸡@fux2 这个东西足够配得上和RGD等其他大佬开发的非官方运行时放在一起
作者: PLeaseS    时间: 2021-7-25 11:06
高!实在是高!
前排支持!
作者: Mr.Jin    时间: 2021-7-25 11:08
很棒,如果有跨平台的支持,将会是更好的一款 runtime (比我的mruby版要好)
作者: orochi2k    时间: 2021-7-25 14:44
实测了一下,发现了一个小问题。
对于经过默认加密后的游戏直接找不到脚本文件
作者: Admenri    时间: 2021-7-25 14:48
orochi2k 发表于 2021-7-25 14:44
实测了一下,发现了一个小问题。
对于经过默认加密后的游戏直接找不到脚本文件 ...

目前不支持读取加密文件
作者: kirh_036    时间: 2021-7-25 17:15
越来越多的醋虾大佬出现力,我也要加把劲骑士了
作者: 张咚咚    时间: 2021-7-27 21:18
本帖最后由 张咚咚 于 2021-7-28 00:17 编辑

这也太强了吧
不知道综合性能和RGD相比怎么样呢。
突然想将工程迁移过来XD(不过想到工程量有点想放弃了emmm)

稍微测了下,很直观的感受到流畅度爆表


RGD



在反馈几个测试遇到的问题~
1.音效的音量好像整体偏大了一点,同等音量好像比原版要大的多的多..
2.精灵的水波纹效果和tone好像有点问题。
3.再补充一个,当场上存在大量精灵的时候,会卡住一会,大概1~2秒,
   回过神来后精灵瞬间消失了(可能是大量释放的时候卡住了?), RGD的话是直接掉帧但不会卡住。
期待后续优化~
作者: 89444640    时间: 2021-7-28 07:52
本帖最后由 89444640 于 2021-7-28 08:17 编辑

范例游戏缺资源无法正常运行,我不熟悉XP以外的版本不知道应该导入哪些资源,有可能的话,一起打包吧……方便用户测试。
0727那个我放自己工程里面显示这个,我字体是调用了三个字体库,把调用过的字体复制到fonts里也不行,完全不会用。

作者: Admenri    时间: 2021-7-28 08:20
89444640 发表于 2021-7-28 07:52
范例游戏缺资源无法正常运行,我不熟悉XP以外的版本不知道应该导入哪些资源,有可能的话,一起打包吧……方 ...


一般直接写类变量会出现FrozenError
改成全局变量或暂时屏蔽即可

缺资源的话直接复制一份RTP覆盖即可,字体文件有默认的其实就可以了

作者: Admenri    时间: 2021-7-29 18:00
张咚咚 发表于 2021-7-27 21:18
这也太强了吧
不知道综合性能和RGD相比怎么样呢。
突然想将工程迁移过来XD(不过想到工程 ...

精灵tone我测试和原版一致的a(也许显卡有点问题
水波特效毕竟是仿的,某些参数只能自己猜了,有点差异也正常(
大量精灵卡顿问题在新版修复了,在Game.ini里写上SyncToRefreshRate可大幅提升画面流畅度
作者: 非常白菜    时间: 2021-7-30 01:18
在搬迁工程中发现一个问题,在绘制部分透明的图片(例如图标)时,如果将图片不透明度设置为255,图片整个rect大小会覆盖其下的所有contents信息,文字很难描述我来用两张图说明
上面的图是我希望达到的效果,我使用矩形填充给图标绘制了一个底色,在底色上面描绘了图标,图标图片透明部分应该是能看到底色才对,而现在的情况是下面这样的,图标整个矩形完全覆盖掉了下面的内容,包括本应该显示出来的部分
目前这个问题涉及到所有类似的情景中,比如光影脚本中有半透明的遮罩,光源是图片显示的,一样会出现光源把遮罩层完全覆盖掉了,显示出一个矩形,本应该是叠加的效果

未标题-1.jpg (17.55 KB, 下载次数: 21)

未标题-1.jpg

作者: 非常白菜    时间: 2021-7-30 01:24
非常白菜 发表于 2021-7-30 01:18
在搬迁工程中发现一个问题,在绘制部分透明的图片(例如图标)时,如果将图片不透明度设置为255,图片整个r ...

目前找出的解决办法,是把这类图片的不透明度设置为254,也就是把图片增加那么一点难以察觉的半透明度来进行问题的规避
作者: 2336838623    时间: 2021-7-30 19:57
66666666666
作者: 非常白菜    时间: 2021-7-30 22:26
张咚咚 发表于 2021-7-27 21:18
这也太强了吧
不知道综合性能和RGD相比怎么样呢。
突然想将工程迁移过来XD(不过想到工程 ...

看了一下你的问题3,可以尝试将SyncToRefreshRate关闭,并且将Graphics.frame_skip和Graphics.vsync都设置为false,如此设置以后至少在我这里那种忽然顿卡一下的情况基本都改善了,其实就是处理大量精灵时画面跳帧了,frame_skip其实应该默认关闭比较好
作者: 霸王曾籍    时间: 2021-8-23 14:08
多谢大佬分享收藏走了
作者: soulsaga    时间: 2021-9-25 13:20
有问题...防具或技能等class里面p self.id报错..原版可以P..
作者: Im剑侠客    时间: 2021-9-25 15:39
XP的问题,相对于默认脚本新增的类,出现了superclass的报错,然后忽略掉之后,还出现了eval的报错,这是不存在脚本的内容,这下应该是触动了XP的底层脚本吧?
可惜啊,游戏未能顺利进入标题画面……
作者: 这是一个昵称9    时间: 2021-10-27 18:48
本帖最后由 这是一个昵称9 于 2021-11-6 11:54 编辑

目前测试出的bug:tilemap的图层和设置a原件为高层的脚本冲突,地图到战斗画面渐变之前地图角色直接消失,tilemap地图透明的边缘会留下地图图块(正常是黑色)
希望能优化
作者: 这是一个昵称9    时间: 2021-11-9 20:04
本帖最后由 这是一个昵称9 于 2021-11-9 20:05 编辑
这是一个昵称9 发表于 2021-10-27 18:48
目前测试出的bug:tilemap的图层和设置a原件为高层的脚本冲突,地图到战斗画面渐变之前地图角色直接消失,t ...


地图到战斗精灵直接消失应该是graphics.freeze之后又进行画面渐变导致的,只freeze没问题
那个改变tilemap的脚本原理是根据区域id把map.data数据改变了,原本图层0的图块数据改到图层2,然后再把图层0改成基础地面,达到高墙挡住角色的效果,但是tilemap没有实时更新图层z轴,加一个刷新地图图层高度数据的方法就好了吧?
作者: Admenri    时间: 2021-11-20 08:52
这是一个昵称9 发表于 2021-11-9 20:04
地图到战斗精灵直接消失应该是graphics.freeze之后又进行画面渐变导致的,只freeze没问题
那个改变tilema ...

一般freeze后会保持freeze之前的画面,
执行渐变时使用的是freeze时的画面快照。
RGU中freeze时会获取当前快照画面且update会失效,
直到渐变结束前不会更新任何精灵,执行渐变时会更新一帧作为渐变目标(仅此一帧)
具体没有效果演示我也很难判断是哪个环节出问题了(
作者: 这是一个昵称9    时间: 2021-11-21 20:37
本帖最后由 这是一个昵称9 于 2021-11-21 21:05 编辑
Admenri 发表于 2021-11-20 08:52
一般freeze后会保持freeze之前的画面,
执行渐变时使用的是freeze时的画面快照。
RGU中freeze时会获取当 ...


范例工程加个战斗事件,战斗画面执行渐变时地图角色直接消失了
没有删过原工程的事件[attach]384089[/attach]
而且地图进入菜单时天气特效没有消失

搜狗截图20211121203411.jpg (151.29 KB, 下载次数: 21)

搜狗截图20211121203411.jpg

作者: 这是一个昵称9    时间: 2021-12-3 15:05
本帖最后由 这是一个昵称9 于 2021-12-10 19:09 编辑

我发现如果中途把动画的bitmap dispose掉,之后再调用,bitmap可能会出错,不dispose就没事
而且减法合成的效果确实有点差别

截图.jpg (10.33 KB, 下载次数: 19)

图像乱码

图像乱码

出错截图.jpg (12.77 KB, 下载次数: 12)

左边原版右边rgu

左边原版右边rgu

作者: xiaohuangdi    时间: 2021-12-15 02:00
本帖最后由 xiaohuangdi 于 2021-12-15 02:14 编辑

效率提升拉滿,完全不卡頓 好讚。
1.跟樓上反映的問題一樣,技能動畫圖層會出現上一個技能動畫的底層。
2.能不用區分32位跟64位的exe嗎? 或者能否2個exe都在遊戲夾裡,點擊各自的就能打開遊戲
3.桌子比墻壁的圖層高,RGD也有同樣的問題,可能是我其他腳本衝突了;
4.有的玩家fps變成1000+,測試結果是因為,如果顯卡設置“性能優先”就會這樣;

作者: Admenri    时间: 2021-12-22 23:00
这是一个昵称9 发表于 2021-12-3 15:05
我发现如果中途把动画的bitmap dispose掉,之后再调用,bitmap可能会出错,不dispose就没事
而且减法合成的 ...

减法合成上与原版对比未发现较大差异(
图块人物消失的问题是我把tileset的viewport与spritte_character分开导致的
至于bitmap,dispose后会释放显存,所以会导致出错



作者: 这是一个昵称9    时间: 2021-12-23 02:22
Admenri 发表于 2021-12-22 23:00
减法合成上与原版对比未发现较大差异(
图块人物消失的问题是我把tileset的viewport与spritte_character ...

我又观察了一下,减法合成出问题应该是bug,可能还是dispose导致的,正常情况下没事
总之流畅度比rgu高,太妙了
作者: 这是一个昵称9    时间: 2021-12-23 02:23
给tilemap加个自主调整图层的函数就太好了,我想把一部分a图块放在头顶上
作者: Admenri    时间: 2021-12-31 17:46
xiaohuangdi 发表于 2021-12-15 02:00
效率提升拉滿,完全不卡頓 好讚。
1.跟樓上反映的問題一樣,技能動畫圖層會出現上一個技能動畫的底層。
2. ...

因为RGU里图块是从下到上的顺序绘制的,这样方便一些遮挡的处理但我忘了桌子腿了()
作者: rfvtgbzxc    时间: 2022-1-1 15:22
本帖最后由 rfvtgbzxc 于 2022-1-1 16:49 编辑

1004版本 RGSS1 闪退反馈:
Graphic.transition调用后,发生闪退
触发条件:
self.opacity 设为255以外的值,且 self.windowskin = nil 时(两者都满足时触发)
测试代码:
  1. class Window_Test < Window_Base
  2.   def initialize
  3.     super(0,0,100,100)
  4.     self.opacity = 0
  5.     self.windowskin = nil
  6.   end
  7. end
  8. class Scene_Test
  9.   def main
  10.     $data_system        = load_data("Data/System.rxdata")
  11.     $game_system = Game_System.new
  12.     @test_window = Window_Test.new
  13.     # 执行过渡
  14.     Graphics.transition
  15.     # 主循环
  16.     loop do
  17.       # 刷新游戏画面
  18.       Graphics.update
  19.       # 刷新输入信息
  20.       Input.update
  21.       if Input.trigger?(Input::C)
  22.         $scene = nil
  23.       end
  24.       # 如果画面被切换就中断循环
  25.       if $scene != self
  26.         break
  27.       end
  28.     end
  29.     @test_window.dispose
  30.   end
  31. end
复制代码


作者: 张咚咚    时间: 2022-1-4 18:24
本帖最后由 张咚咚 于 2022-1-4 23:16 编辑

更新了,支持一波。不知道什么时候可以把RGD的Sprite#add_child相关的几个方法更新,好想尽快把游戏移植到RGU
还有一个Input.trigger?(:F10/F11/F12)是检测的鼠标单击,就算EnableReset=0禁用了F12重启这三个键也还是检测的鼠标单击,不知道算不算bug
作者: 张咚咚    时间: 2022-1-15 20:47
本帖最后由 张咚咚 于 2022-1-15 21:06 编辑

反馈一个从RGD兼容过来的问题
  1. class Test
  2.   def initialize
  3.     @test = Color.new
  4.   end
  5. end
  6. # 保存
  7. File.open('test', 'wb') do |f|
  8.   Marshal.dump(Test.new, f)
  9. end
  10. # 读取
  11. File.open('test', 'rb') do |f|
  12.   p Marshal.load(f)
  13. end
复制代码

上面这段脚本是对一个类的实例进行存储读取。
只在RGD或RGU里写入+读取都没问题。。
但是如果在RGD里保存后, 然后在RGU里读取就会提示:Serialized data invalid
猜测可能是color存储的格式不一样导致的?


还有一个兼容问题:Bitmap.new(w, h) # 宽高必须要大于 0。
因为之前RGD旧工程的话填0是没问题的,当然这个可以用脚本解决, 不过如果能引擎兼容就更好了。


第三个反馈就是精灵的children,测试了下坐标好像并没有以父精灵为基准点。
应该是x, y, z, opacity, zoom_x, zoom_y, color, tone这些属性是和父类的属性进行关联。
子xyz = 父xyz + 子xyz
opacity,zoom,color,tone 等应该是:子opacity实际显示效果 = 父opacity * (子opacity / 255)
比如父opacity设置180,子opacity设置0,那实际效果就是0,子opacity设置255,那实际显示的透明程度也最高只到180。


第四个就是希望可以添加 Mouse.clip 方法。

还有一些与RGD逻辑不一样的,比如Mouse.scroll的值。
不过这些简单的用脚本三两句就转换过来了,应该没什么大问题。

另外辛苦了~,其他还有一些问题没找到具体原因,等找到了再来继续补充吧emmm



作者: Admenri    时间: 2022-1-16 23:04
张咚咚 发表于 2022-1-15 20:47
反馈一个从RGD兼容过来的问题

上面这段脚本是对一个类的实例进行存储读取。

color与tone我用的都是8字节的double,与rgd4字节会有差异
Bitmap我感觉创建一个0*0的位图完全没有意义(或者不知道逻辑怎么写了
Sprite的child属性初步测试可以以父精灵为参考,具体写在帮助文档中,
目前我测试的效果与RGD大致相同,z轴的话由于实现方式差异不打算参考父精灵了
鼠标的话,clip这个方法我没在sdl的支持里看到(不过还是可以试一试)

如果可以的话我需要详细的Sprite#add_child测试数据(
作者: 张咚咚    时间: 2022-1-17 07:09
本帖最后由 张咚咚 于 2022-1-17 07:55 编辑
Admenri 发表于 2022-1-16 23:04
color与tone我用的都是8字节的double,与rgd4字节会有差异
Bitmap我感觉创建一个0*0的位图完全没有意义( ...

  1. red = Sprite.new
  2. red.bitmap = Bitmap.new(10,10)
  3. red.bitmap.fill_rect(red.bitmap.rect, Color.new(255,0,0))
  4. red.x = 300

  5. green = Sprite.new
  6. green.bitmap = Bitmap.new(10,10)
  7. green.bitmap.fill_rect(green.bitmap.rect, Color.new(0,255,0))
  8. green.x = 50

  9. red.add_child(green)

  10. loop{Graphics.update}
复制代码

比如上面这段脚本,正常应该是红点在300位置,绿点在350的位置。
但实际上是红点在300位置,绿点在50位置,绿点没生效父精灵的属性。


作者: 雨之沉默    时间: 2022-2-7 01:49
提交个BUG:Fonts文件夹下如果没有Default.ttf字体文件,按F1调出设置时会闪退,不知道是我电脑问题还是本身就有的bug,我用的程序是2月5日的版本,电脑是华硕天选2,R7-5800H,RTX3060的,换了好几个游戏测试都是这样,只要没有Default.ttf按F1必定闪退。
作者: Admenri    时间: 2022-2-7 08:49
雨之沉默 发表于 2022-2-7 01:49
提交个BUG:Fonts文件夹下如果没有Default.ttf字体文件,按F1调出设置时会闪退,不知道是我电脑问题还是本 ...

肯定啊(F1里绘制文字要用到字体
作者: 这是一个昵称9    时间: 2022-2-7 12:32
新加的设置tilemap图层z轴高度的功能挺好,但能不能把图层index的判定改成tilemap的data?求~
现在是根据图块id类型判断层数的,就没法做出墙壁遮挡角色的效果
作者: ppspssss    时间: 2022-2-8 13:15
@张咚咚
你试了条条丝丝, 我试了一下之前的测试工程,
9X9 = 81台机体同台情况下,
普通XP(RGSS1):
不发射发射时均低于1FPS
普通VA(RGSS3):
不发射8FPS,  发射时6FPS


RGD :
不发射52FPS,  发射时33FPS

RGU:
不发射可达到100FPS, 发射时也可达到60FPS
由于图大就发RGU的

作者: SailCat    时间: 2022-2-9 09:53
对内部没有公开成attr_accessor的类变量做instance_variable_set,能行吗?
a = Game_Actor.new
a.instance_variable_set(:@weapon_id, 15)

1.81,1.92和2.45都没事,2.45也就是不能将:@weapon_id写成"@weapon_id"而已,但3.0我不知道啊
ruby低版本真的是可以各种黑写法,代价当然就是兼容性

(在考虑要不要让SEP RGSS1插件支援RGU的猫)
作者: 非常白菜    时间: 2022-2-26 21:50
最近被一个很奇怪的问题困扰(虽然问题可能存在很长时间了),游戏在运行一段时间后会随机出现程序崩溃,更头疼的是完全找不到规律性,有时在场景切换时发生,有时在窗口光标移动时发生,有时候甚至会在地图行走时发生
虽然感觉问题可能跟自己的垃圾代码有关,但自己对这种不确定位置不确定时机的BUG完全没有头绪,所以想请教大佬们看看如何排查

以下是一些错误日志,控制台报的都是Segmentation fault,相关的代码位置大多指向Graphics.update偶尔有Graphics.transition,可自己也并没有魔改过这些地方,无念

error_log.zip (2.12 KB, 下载次数: 4)

{0302}:85: [BUG] Segmentation fault
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x64-mswin64_140]

-- Control frame information -----------------------------------------------
c:0023 p:---- s:0089 e:000088 CFUNC  :update
c:0022 p:0003 s:0085 e:000084 METHOD {0302}:85
c:0021 p:0107 s:0081 e:000080 METHOD {0315}:89
c:0020 p:0011 s:0076 e:000075 METHOD {0104}:49
c:0019 p:0003 s:0072 e:000071 METHOD {0305}:5232
c:0018 p:0003 s:0068 e:000067 METHOD {0313}:861
c:0017 p:0080 s:0064 e:000063 METHOD {0315}:125
c:0016 p:0003 s:0060 e:000059 METHOD {0104}:43
c:0015 p:0003 s:0056 e:000055 METHOD {0163}:187
c:0014 p:0019 s:0052 e:000051 METHOD {0239}:633
c:0013 p:0003 s:0048 e:000047 METHOD {0243}:572
c:0012 p:0003 s:0044 e:000043 METHOD {0303}:157
c:0011 p:0017 s:0040 e:000039 METHOD {0104}:15
c:0010 p:0048 s:0036 e:000035 METHOD {0007}:23
c:0009 p:0007 s:0032 e:000031 METHOD {0163}:117
c:0008 p:0040 s:0028 e:000027 METHOD {0229}:90
c:0007 p:0016 s:0024 e:000023 METHOD {0250}:22
c:0006 p:0019 s:0020 e:000019 METHOD {0315}:101
c:0005 p:0012 s:0016 e:000015 BLOCK  {0316}:34 [FINISH]
c:0004 p:---- s:0013 e:000012 CFUNC  :rgss_main
c:0003 p:0089 s:0009 E:000370 EVAL   {0316}:34 [FINISH]
c:0002 p:---- s:0006 e:000005 CFUNC  :eval
c:0001 p:0000 s:0003 E:000210 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
-e:0:in `eval'
{0316}:34:in `<main>'
{0316}:34:in `rgss_main'
{0316}:34:in `block in <main>'
{0315}:101:in `run'
{0250}:22:in `run'
{0229}:90:in `run'
{0163}:117:in `run'
{0007}:23:in `run'
{0104}:15:in `main'
{0303}:157:in `update'
{0243}:572:in `update'
{0239}:633:in `update'
{0163}:187:in `update'
{0104}:43:in `update'
{0315}:125:in `update_basic'
{0313}:861:in `update_basic'
{0305}:5232:in `update_basic'
{0104}:49:in `update_basic'
{0315}:89:in `update'
{0302}:85:in `update'
{0302}:85:in `update'

-- C level backtrace information -------------------------------------------
C:\Windows\SYSTEM32\ntdll.dll(NtWaitForSingleObject+0x14) [0x00007FFE1AACCDF4]
C:\Windows\System32\KERNELBASE.dll(WaitForSingleObjectEx+0x8e) [0x00007FFE18191A5E]
[0x00007FF7342F2300]
[0x00007FF7342F23C9]
[0x00007FF734210E43]
[0x00007FF7342D7D4E]
C:\Windows\System32\ucrtbase.dll(seh_filter_exe+0x235) [0x00007FFE18670EF5]
C:\Windows\System32\ucrtbase.dll(_intrinsic_setjmpex+0x1015) [0x00007FFE1864BD95]
C:\Windows\System32\ucrtbase.dll(_C_specific_handler+0xa0) [0x00007FFE18640E10]
C:\Windows\SYSTEM32\ntdll.dll(_chkstk+0x11f) [0x00007FFE1AAD20CF]
C:\Windows\SYSTEM32\ntdll.dll(RtlRaiseException+0x434) [0x00007FFE1AA81454]
C:\Windows\SYSTEM32\ntdll.dll(KiUserExceptionDispatcher+0x2e) [0x00007FFE1AAD0BFE]
[0x00007FF733FFCCFE]
[0x00007FF73401EE07]
[0x00007FF734003C64]
[0x00007FF73400B4FE]
[0x00007FF73400C884]
[0x00007FF733FD84B8]
[0x00007FF734229792]
[0x00007FF7342330E8]
[0x00007FF73422DFAE]
[0x00007FF7342258E1]
[0x00007FF734230BD5]
[0x00007FF734225D8E]
[0x00007FF734228FFD]
[0x00007FF7342251B1]
[0x00007FF734220A55]
[0x00007FF734222468]
[0x00007FF733FCC9B6]
[0x00007FF7341F97B7]
[0x00007FF733FCB8B8]
[0x00007FF733FCCA42]
[0x00007FF734229792]
[0x00007FF73422A5A6]
[0x00007FF73422A2A8]
[0x00007FF7342330E8]
[0x00007FF73422DFAE]
[0x00007FF7342258E1]
[0x00007FF734221CDE]
[0x00007FF73422927A]
[0x00007FF73422902D]
[0x00007FF7342251B1]
[0x00007FF734220A55]
[0x00007FF734222468]
[0x00007FF733FCD12F]
[0x00007FF7341F9088]
[0x00007FF733FCDD29]
[0x00007FF733FCE7FA]
[0x00007FF734013387]
[0x00007FF734379E88]
[0x00007FF7343ACC82]
C:\Windows\System32\ucrtbase.dll(configthreadlocale+0x92) [0x00007FFE18621BB2]
C:\Windows\System32\KERNEL32.DLL(BaseThreadInitThunk+0x14) [0x00007FFE194F7034]

-- Other runtime information -----------------------------------------------

* Loaded script: -e

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 ruby2_keywords.rb
作者: 凯琳·赛拉菲姆    时间: 2022-8-1 00:00
求兼容sino的鼠标插件
作者: Admenri    时间: 2022-8-17 14:24
凯琳·赛拉菲姆 发表于 2022-8-1 00:00
求兼容sino的鼠标插件

专用脚本里已更新
作者: 凯琳·赛拉菲姆    时间: 2022-9-14 10:37
有个不算问题的问题,如果涉及到战斗中显示战斗图,己方战斗图总要延迟一下才刷新出来,而原版VA都是进战斗直接显示
作者: 我为鱼肉    时间: 2022-9-22 23:38
本帖最后由 我为鱼肉 于 2022-9-22 23:40 编辑

bitmap.font.name似乎没有用
怎么在游戏中使用font目录下的其他字体呢
作者: Admenri    时间: 2022-9-23 19:31
我为鱼肉 发表于 2022-9-22 23:38
bitmap.font.name似乎没有用
怎么在游戏中使用font目录下的其他字体呢

最新版使用字体的方式是直接输入字体的文件名“font.ttf”,注意字体文件需要放在Fonts里
作者: 我为鱼肉    时间: 2022-9-25 00:06
能兼容一下对RGSS1的鼠标支持吗?
  1. $ShowCursor = Win32API.new("user32", "ShowCursor", 'i', 'l')
  2. $GetCursorPos = Win32API.new("user32", "GetCursorPos", 'p', 'i')
  3. $ScreenToClient = Win32API.new("user32", "ScreenToClient", 'ip', 'i')
  4. $GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l')
  5. $Window_HWND = $GetActiveWindow.call
  6. $GetKeyState = Win32API.new("user32", "GetKeyState", 'i', 'i')
复制代码

GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l') 报错
作者: 雨之沉默    时间: 2022-12-28 02:52
我为鱼肉 发表于 2022-9-25 00:06
能兼容一下对RGSS1的鼠标支持吗?

GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, ' ...

Graphics.window_hwnd可以直接获取句柄的
作者: 我为鱼肉    时间: 2023-1-3 21:07
请教,系统光标如何隐藏?
作者: xiaohuangdi    时间: 2023-2-27 07:23
本帖最后由 xiaohuangdi 于 2023-3-5 14:37 编辑

1.20121215之后的版本   字体大小变成固定;
2.玩家4k显示器 会变成145fps   2.5倍加速 而不是60fps,需要玩家手动将显示器刷新率限制为60;


還要手動改名"game.exe" 手動開啓同步垂直;
再來手動改顯示器刷新率, 真的很影響用戶體驗
作者: BCJenbo    时间: 2023-7-21 02:16
哪儿是示例游戏? 没有下载

(使用谷歌翻译)
作者: 智将Jesse    时间: 2023-8-15 00:02
作者您好,请问我为什么不能直接指定RGSS的版本(我用到了多个scripts.rvdata2用于区分功能和运行时)
如果可以的话,可以提供一个仅支持RMVA的版本吗
另外,RGU的脚本兼容性似乎很差,它不兼容后台运行,内存优化等脚本
希望可以改进
作者: Flyingpww    时间: 2024-1-4 21:12
有个BUG,图片进行保存后,再读取就发生错误,错误是找不到该文件,但是重启后就不会发生错误。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1