【问题标题】:Getting frame width from spritesheet从 spritesheet 获取帧宽度
【发布时间】:2015-09-19 18:28:44
【问题描述】:

有一段时间我尝试基于 MonoGame 创建一些简单的游戏,但遇到了一个问题。

我在spritedatabase 中找到了一些spritesheets,但是当前工作表上的一些图像具有不同的宽度/Example/。我的意思是,在第三行/从上到下/,运行图像所在的位置与第四行的宽度不同。

我脑海中弹出的第一件事是复制粘贴并调整所有图像的大小,但我 100% 确信有一种更精细的方法来做到这一点。

所以问题是:如何在绘制之前获取当前帧的大小?我应该使用一些图像识别算法吗?

【问题讨论】:

    标签: algorithm graphics visualization sprite-sheet


    【解决方案1】:

    很明显,您提供的精灵表缺少额外的信息,无法让您轻松粘贴它。首先,您应该需要知道每个帧的原点,其次是它的尺寸。精灵表中的尺寸可能会有所不同,但在这种情况下,只有正确的原点才能保证精灵始终正确定位。请注意,此类数据库中的精灵表(通常在无视版权的情况下被撕掉)通常在 Photoshop 或其他类似软件中手动打包。不幸的是,这需要一些认真的努力来处理它们。因此,要使用它们,您应该提取所有帧,将它们分层放置,并确保逻辑原点在同一个位置(对于横向卷轴和双足角色,它可能位于脚之间)。

    无论如何,我会手动提取每个精灵。您还可以将 segment_image script 与 ImageMagick 一起使用。但可能手工工作的工作量相同甚至更少。

    之后,我会将画布所有提取的框架放大到最大的框架尺寸。将其打包到 spritesheet 中,导入到 Piskel 并重新定位每个帧以具有正确的原点。坦率地说,最终的工具是无关紧要的,因为您也可以使用 Flash 或 Photoshop。

    【讨论】:

    • 感谢您的回答。我也认为这是一种方式,但如果你问/如果你自己找不到信息/总是更好。
    猜你喜欢
    • 2012-09-13
    • 2021-04-18
    • 2015-11-02
    • 2023-04-09
    • 1970-01-01
    • 2019-12-26
    • 2017-02-02
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多