我在 API 中搜索了 SpriteSheet ,但我找不到任何关于如何制作具有不同大小 Sprite 的 Sprite 表的信息。
我使用的 Sprite 表有一行 16x16px 的图 block ,下面有一行 24x24px 的图 block ,下面有一行 8x8px 的图 block ,依此类推。
最初,我没有使用 Slick2D,而是使用 BufferedImage.getSubimage() 从 Sprite 表的临时 BufferedImage 中获取每个 Sprite 。这里有类似的方法可以使用吗?
最佳答案
我认为在当前版本的 API 中没有办法直接生成子图像,至少在撰写本文时是这样。
但是,我可以想到三种可能的选择(除了自己添加上述方法调用的选项之外 - 毕竟是 open source):
- 如果您确实想将它们保留在同一个源文件中,您可以从同一源
Image
实例化多个SpriteSheet
对象,每个 Sprite 大小对应一个对象。< - 您可以获取
Image
实例,并在其上调用getSubImage
将Image
拆分为三张图像,每种尺寸 (24x24 、16x16 等)。然后,从这些子图像中实例化SpriteSheets
。 - 您可以根据大小将源文件拆分为单独的文件。也就是说,将 24x24 Sprite 单元放在一个文件中,将 16x16 Sprite 单元放在另一个文件中,依此类推。
关于java - 在 Slick2D 中使用具有不同大小 Sprite 的 Sprite 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9422012/