tomatoma00 / grf_hangzhoumetro

0 stars 0 forks source link

EZ问题 #1

Open WenSimEHRP opened 2 weeks ago

WenSimEHRP commented 2 weeks ago

welcome! 3个版本都是8bpp,但清晰度不同,第一个包为传统8bpp清晰度的,后两个素材增加了清晰度,但在视角缩小时,会出现列车突然变大的情况,暂时无法解决,在最大视角、次大视角下显示正常。

hangzhoumetro2包含了2号线!舒适度已更改

可能是 alternative_sprites 的问题,有可能是 zoom 没有设置好。

自 nml 0.7.5 以来也可以不使用 alternative_sprites 定义32bpp与EZ图形。

可以发出源码看看问题吗?

tomatoma00 commented 2 weeks ago

感谢大佬!列车的代码比较冗余,我的公交车代码也是存在这个问题,公交车的渲染代码就在我的另一个仓库里,https://github.com/tomatoma00/chinabus_yutong_and_kinglong 。麻烦大佬帮忙看看了

tomatoma00 commented 2 weeks ago

请教一下除了alternative_sprites还有什么可以改变缩放呀

WenSimEHRP commented 2 weeks ago

请教一下除了alternative_sprites还有什么可以改变缩放呀

没有,除非在定义spriteset的时候就指定缩放

WenSimEHRP commented 2 weeks ago
-spriteset(spriteset_klbus, "sprites/xmqbus.png") {
+spriteset(spriteset_klbus, "sprites/xmqbus.png", ZOOM_LEVEL_IN_2X, BIT_DEPTH_8BPP) {
+ // 注意这里可以加额外参数
     [ 0, 0, 10, 40, -5, -20]
    [ 11, 0, 33, 32, -17, -16]
    [ 45, 0, 50, 20, -25, -10]
    [ 96, 0, 33, 32, -17, -16]
    [ 130, 0, 10, 40, -5, -20]
    [ 141, 0, 33, 32, -17, -16]
    [ 175, 0, 50, 20, -25, -10]
    [ 226, 0, 33, 32, -17, -16]
}
-alternative_sprites(spriteset_klbus, ZOOM_LEVEL_IN_2X, BIT_DEPTH_8BPP, "sprites/xmqbus.png") {
-  [ 0, 0, 10, 40, -5, -20]
-    [ 11, 0, 33, 32, -17, -16]
-    [ 45, 0, 50, 20, -25, -10]
-    [ 96, 0, 33, 32, -17, -16]
-    [ 130, 0, 10, 40, -5, -20]
-    [ 141, 0, 33, 32, -17, -16]
-    [ 175, 0, 50, 20, -25, -10]
-    [ 226, 0, 33, 32, -17, -16]
-}

这样子就可以了


OpenTTD 中的缩放分为这些级别(NML当中的定义):

你在 alternative_sprites 里定义的公交车图像是 2x 缩放,使用的也是 2x 缩放的图像。spriteset 当中定义的图像没有使用 2x 缩放,但实际使用了 2x 缩放的公交车图像。alternative_sprites 的作用是在特定情况下用来替换 spriteset 定义的图像,而不在这个特定情况时,游戏自然就会使用 spriteset 定义的图像。由于你没有定义 spriteset 所使用的缩放倍数,游戏会认为这是 Normal zoom 图像,从而导致显示错误。

进一步说,这样其实会重复导入图像,等于把相同的图像存储了两次。

更完整的错误解析可能要看到源代码才行。

tomatoma00 commented 2 weeks ago

非常感谢大佬!这就去试试!

WenSimEHRP commented 1 week ago

image

这里没有修正……

tomatoma00 commented 1 week ago

感谢感谢,这里没有发现!我回去修改一下,顺便把源代码也一起上传上来