Open WenSimEHRP opened 2 weeks ago
感谢大佬!列车的代码比较冗余,我的公交车代码也是存在这个问题,公交车的渲染代码就在我的另一个仓库里,https://github.com/tomatoma00/chinabus_yutong_and_kinglong 。麻烦大佬帮忙看看了
请教一下除了alternative_sprites还有什么可以改变缩放呀
请教一下除了alternative_sprites还有什么可以改变缩放呀
没有,除非在定义spriteset的时候就指定缩放
-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当中的定义):
ZOOM_LEVEL_OUT_8X
— 1/8ZOOM_LEVEL_OUT_4X
— 1/4ZOOM_LEVEL_OUT_2X
— 1/2ZOOM_LEVEL_NORMAL
— 1x,正常ZOOM_LEVEL_IN_2X
— 2xZOOM_LEVEL_IN_4X
— 4x你在 alternative_sprites
里定义的公交车图像是 2x 缩放,使用的也是 2x 缩放的图像。spriteset
当中定义的图像没有使用 2x 缩放,但实际使用了 2x 缩放的公交车图像。alternative_sprites
的作用是在特定情况下用来替换 spriteset
定义的图像,而不在这个特定情况时,游戏自然就会使用 spriteset
定义的图像。由于你没有定义 spriteset
所使用的缩放倍数,游戏会认为这是 Normal zoom 图像,从而导致显示错误。
进一步说,这样其实会重复导入图像,等于把相同的图像存储了两次。
更完整的错误解析可能要看到源代码才行。
非常感谢大佬!这就去试试!
这里没有修正……
感谢感谢,这里没有发现!我回去修改一下,顺便把源代码也一起上传上来
可能是
alternative_sprites
的问题,有可能是 zoom 没有设置好。自 nml 0.7.5 以来也可以不使用 alternative_sprites 定义32bpp与EZ图形。
可以发出源码看看问题吗?