铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 3748|回复: 7

[lua复刻] lua版的几个明显问题和修改方案

[复制链接]
发表于 2018-6-26 17:01 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
lua版有几个设计上的重大缺陷,在此介绍一下。

PNG类图片无法设置偏移
目前一些版本将偏移设置在图片中部,或者图片下面中间。
解决方法:改改代码不难,不过还要让修改器作者一起改,之前的格式怎么处理,貌似已经无解了。

不区分按键抬起和按下
如果区分了有些按键响应会容易处理,否则只能用一些小手段,目前来看已经完蛋了。

错误的图片放大方式
先放大小图片再拼成大图,在放大倍数非整数时拼图结果会有缺陷。
有办法解决。

绘制字符比较慢
原方法比较糟糕,有办法解决。

图片的链表记录
原来是为了节省内存,实际上目前主流设备(含手机)中图片全部载入也不会占用很大内存,可以去掉。

有的黑山中已经修改了。

以上均为胡扯,本人不对此负责。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-6-27 13:31 | 显示全部楼层
你要负责,一定要负责
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-6-28 20:36 来自手机 | 显示全部楼层
本帖最后由 真正的强强 于 2018-6-28 20:43 编辑

png图片增加偏移问题,我想的是在每个png图片数据结尾加几个字节,用特殊的数据标志说明此png图片有偏移信息,比如PNGOFFSET的ASCII码,然后再接4个字节的xy偏移,这样应该可以与原格式兼容。(没试过这样做原程序还能不能读,但我觉得png格式应该有自身大小的记录,应该不会读多余的字节)
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-11-5 10:49 | 显示全部楼层
真正的强强 发表于 2018-6-28 20:36
png图片增加偏移问题,我想的是在每个png图片数据结尾加几个字节,用特殊的数据标志说明此png图片有偏移信 ...

方法可行,但是似乎应该有更优雅的解决方案
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-11-5 15:01 | 显示全部楼层
如果强行不使用偏移如何?
本来偏移这个概念就是dos版rle贴图引入的
纯粹的图片素材本来就没有偏移这个概念
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-11-6 15:42 | 显示全部楼层
如果连续图片素材没有偏移很难处理
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-11-6 18:19 | 显示全部楼层
bt 发表于 2018-11-6 15:42
如果连续图片素材没有偏移很难处理

能否根据图片w和h估算偏移的位置,进而能否通过图片的内容估算(content-aware)?overhead应该不大,18*9的小网络就行了。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2021-1-4 02:44 | 显示全部楼层
本帖最后由 btxdex 于 2021-1-4 03:28 编辑

oFFs是众多png扩展chunk中的一部分,可以直接把偏移写到图片里
libpng有函数直接支持
  1. png_uint_32 png_get_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 * x_offset, png_int_32 * y_offset, int * unit_type);

  2. void png_set_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type);
复制代码

pascal TPNGImage的话,貌似没有直接支持oFFs,可能可以chunks一个个读 https://documentation.help/PNG-Delphi/chunks.htm
或者直接用多个zTXt chunk糊弄一下吧,可以存任意键/值
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-23 16:20

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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