设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: ⑨姐姐
打印 上一主题 下一主题

[原创发布] 【RGD】使用 DirectX 驱动的 RMVA Game.exe(v1.6)

  [复制链接]

Lv4.逐梦者

梦石
0
星屑
19418
在线时间
3101 小时
注册时间
2013-1-11
帖子
1291
231
发表于 2020-2-8 12:40:50 | 只看该作者
本帖最后由 张咚咚 于 2020-2-9 15:33 编辑

反馈一个bug,好像是采样的一个bug吧emmmm
下载工程后,鼠标滑动海龟的时候,文字颜色就变了。。
如果不行,就多重启几次游戏在慢慢接近海龟附近。。



正常的情况是这样的


找到问题的具体原因了。
是因为
temp = bitmap.font.dup
bitmap.font = temp
造成的,dup拷贝后的font对象,颜色、粗体等属性好像会紊乱。
解决方法:可以自己重写Font的dup方法,手动new新的Font对象,赋值完所有属性后在返回。


Project1.7z (1.43 MB, 下载次数: 122)

点评

鸡好像也没找到原因,先直接赋值吧,我们之后再去找  发表于 2020-2-12 13:57
感谢,回头去看看  发表于 2020-2-10 14:54
找到问题所在了,算是一个临时的解决方法= =  发表于 2020-2-9 15:28
工程里面的脚本很短,主要的只有十行不到,那个红色的字绝对不正常emm从头到尾都没有设置过这个颜色  发表于 2020-2-8 15:36
font的dup前只设置过color属性,阴影描边什么的都是默认的,都没改过颜色  发表于 2020-2-8 15:30
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19418
在线时间
3101 小时
注册时间
2013-1-11
帖子
1291
232
发表于 2020-2-10 14:35:01 | 只看该作者
在反馈一个问题。。
按F10游戏好像会暂停。。

点评

如果你加上后台运行 你会发现并不会暂停  发表于 2020-2-10 15:06
F10是失去焦点吧,相当于切换到其他窗口了  发表于 2020-2-10 14:51
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4881
在线时间
425 小时
注册时间
2019-10-22
帖子
666
233
发表于 2020-2-11 14:24:42 | 只看该作者
本帖最后由 坏数据 于 2020-2-11 14:26 编辑



报告一个显示错误的bug   下面多出来那个不和谐的地方 就是地图上边缘(北面边缘) 给循环到下面来了  按着ctrl是走不下去的
出现原因是窗口分辨率x或者y的值 不是32(一格图块)的整数倍的时候

多出来的像素正好是32-(x or y %32)

原版exe好像这种情况是黑边的  我记得有人报告过

点评

感覺素材本身也怪怪的  发表于 2020-3-17 00:46
是的,以后再修  发表于 2020-2-12 13:55
是的,以后再修  发表于 2020-2-12 13:54
是的,以后再修  发表于 2020-2-12 13:53

评分

参与人数 1+1 收起 理由
哇哇哇啊叭叭 + 1 玩rm的都是什么人啊,触瞎了QAQ.

查看全部评分

















回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
707
在线时间
69 小时
注册时间
2012-5-24
帖子
37
234
发表于 2020-3-3 20:29:54 | 只看该作者
有个奇特的bug(sprite和viewport的表现不一致所以怀疑是bug)
我用shader做变形特效时发现,在某些坐标上会取到空颜色,并且与下方图层以异样的方式合成。
如图所示,第一张是sprite直接使用这种shader时的样子。第二张是同一sprite不使用shader,而让它的viewport使用同一shader时的样子。


第二张当中显现的河流图片,是由低层viewport显示的一张普通图片。
若低层viewport的color的alpha设为0,就看不到它,它原本显现的那些区域会成为黑色。若设为0以外的任何值,就是图中效果。
高层viewport计算这些异常区域时,从采样器得到的颜色,利用shader内的if间接判断,我认为是(0,0,0,0)。
附上shader代码:

PS_OUTPUT myPS(float4 color : COLOR0, float2 texcoord : TEXCOORD0)
{
    texcoord.x = texcoord.x + (0.5+0.5*sin(8.0*PI*(texcoord.x))) / 16.0;
    float4 res = tex2D(spriteSampler, texcoord);
    return GetOutput(res);
}

pass MyEft
  {
    AlphaBlendEnable = true;
    SeparateAlphaBlendEnable = true;
   
    BlendOp = ADD;
    SrcBlend = ONE;
    DestBlend = INVSRCALPHA;
    SrcBlendAlpha = ONE;
    DestBlendAlpha = INVSRCALPHA;
   
    PixelShader = compile ps_2_0 myPS();
  }

其中实现的就是简单的“扩张-挤压”波纹效果。调整算式当中的数值,可能得到没有异常的图,但我看不出规律。

点评

Sprite和viewport的shader模式不太一样其实……主要原因是sprite没预乘alpha,合成的时候才处理,如果文档里没写的话之后我去补充一下  发表于 2020-3-3 20:46
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19418
在线时间
3101 小时
注册时间
2013-1-11
帖子
1291
235
发表于 2020-3-13 18:35:10 | 只看该作者
本帖最后由 张咚咚 于 2020-3-14 10:04 编辑

我懵逼了。。。眼花了。。图的第四帧最后一帧是反向的。。

点评

我看错了emmmm,没bug,懵逼了..._(:3」∠)_  发表于 2020-3-14 09:50
你看那个脚本和预览图就能看出问题emmm  发表于 2020-3-14 08:54
不是。。你没理解我的意思。。h是第二行,h变量没变过,应该只显示第二行才对。。但是会显示其他的行。  发表于 2020-3-14 08:44
src_rect的y设置成h就是第二行啊  发表于 2020-3-14 07:42
其他4*4的图都是没问题的= =,而且没用到默认脚本,只用上面这段测试就可以,src_rect的 y 没动过,不应该会显示第二行..  发表于 2020-3-13 21:59
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19418
在线时间
3101 小时
注册时间
2013-1-11
帖子
1291
236
发表于 2020-3-14 09:48:54 | 只看该作者
我又来了= =,在反馈一个问题。。

  1. s = Sprite.new
  2. b = s.bitmap = Bitmap.new(100,24)
  3. b.draw_text(s.bitmap.rect,"啊啊啊啊啊啊啊啊")

  4. loop do
  5.   b.clear_rect(s.bitmap.rect) if Input.trigger?(:C)
  6.   Graphics.update
  7.   Input.update
  8. end
复制代码


bitmap的clear_rect方法, 清除不了边缘内容, 原版是可以清除的。
bug图(清除不完):

点评

感谢报告,是clear_rect的问题,修了下个版本更新  发表于 2020-3-14 10:27
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
28
星屑
10170
在线时间
4673 小时
注册时间
2011-8-22
帖子
1279

开拓者

237
 楼主| 发表于 2020-3-17 10:39:45 | 只看该作者
更新到版本1.5。

更新记录:
启用了控制台的输入功能。
提升Tilemap的性能。
修复了一些图块意外出现在阴影上方的问题。
修复了Bitmap#clear_rect的问题。

利用控制台debug,直接输入代码到控制台里执行的方法如下:
  1. class Scene_Base
  2.   alias cirno_20200130_update update
  3.   
  4.   def update
  5.     cirno_20200130_update
  6.     if $RGD && ($TEST || $BTEST)
  7.       code = RGD.console_input
  8.       if code.length > 0
  9.         begin
  10.           eval(code)
  11.           p "执行成功!"
  12.         rescue Exception => e
  13.           p "运行出错:#{e}"
  14.           p "调用堆栈:"
  15.           p e.backtrace
  16.         end
  17.       end
  18.     end
  19.   end
  20. end
复制代码

点评

这个功能吹爆,对调试太有用了。  发表于 2020-3-27 12:49

评分

参与人数 2+2 收起 理由
MCCF + 1 塞糖
哇哇哇啊叭叭 + 1 塞糖

查看全部评分

回复 支持 3 反对 0

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6682
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

238
发表于 2020-3-18 21:08:06 | 只看该作者
@fux2
我关注RGD很久了,感觉RGD的功能很多,在Windows平台下可以说是非常强悍了。
然而RGD的Game.exe似乎不具备从Game.rgss3a中读取加密数据的能力。是因为版权问题官方加密算法无法公开,还是其他原因呢?
希望询问一下,在RGD下加密游戏数据库及素材有没有别的办法,或者有没有什么兼容RGD的加密方式可用呢?

点评

我这里测试没问题。有没有详细报错或者测试工程可以上传?  发表于 2020-3-19 09:07
大意报错就是无法读取脚本数据。Data文件夹里的内容应该全部都是封装进Game.rgss3a中的,封包之后就无法读取了。  发表于 2020-3-19 08:43
默认的加密方式可以读取吧。你遇到了什么问题?  发表于 2020-3-19 06:42
祝好。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19418
在线时间
3101 小时
注册时间
2013-1-11
帖子
1291
239
发表于 2020-3-19 23:24:23 | 只看该作者
本帖最后由 张咚咚 于 2020-3-19 23:38 编辑

反馈一个bug。。


范例工程:
Project1.7z (1.42 MB, 下载次数: 135)

完全原版脚本未经任何修改,范例有两张地图,
进入范例与事件对话传送到另一张地图就会强行关闭。。
1.5出错的(可能是优化Tilemap导致的),上个版本没有问题。。

解决方法:
将默认脚本的Scriptset_Map里面的update_tilemap方法的@tilemap.map_data = $game_map.data注释掉,不会报错了,但是不知道有没有其他影响什么的= =

点评

感谢报告,修复了,下个版本更新  发表于 2020-3-20 07:38
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
28
星屑
10170
在线时间
4673 小时
注册时间
2011-8-22
帖子
1279

开拓者

240
 楼主| 发表于 2020-3-20 07:44:28 | 只看该作者
赶紧更新到了1.5.1,修复了地图崩溃的问题。

评分

参与人数 2+2 收起 理由
张咚咚 + 1 辛苦了。。
MCCF + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 01:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表