gpt4 book ai didi

python-3.x - Kivy 雪碧图

转载 作者:行者123 更新时间:2023-12-02 21:10:08 25 4
gpt4 key购买 nike

有没有办法在kivy中裁剪 Sprite 表?

例如,我有这个 Sprite 表:

example image

我喜欢裁剪并创建一个分离的 Sprite 列表。

像这样:

spriteList = []

spriteW, spriteH = (32, 32)
imgW, imgH = (320, 320)

col = imgW // spriteW
row = imgH // spriteH

for x in range(col):
for y in range(row):
cropped = cropImg(spriteW * x, spriteH * y) #THIS FUNC IS AN EXAMPLE
spriteList.append(cropped)

有办法在 kivy 中做到这一点吗?

最佳答案

为了将来的引用,Kivy 现在配备了 Atlas 系统。

这只是一个 json 文件,其中文件的姓氏已更改为 .atlas

该文件包含以下结构:

{
"<basename>-<index>.png": {
"id1": [ <x>, <y>, <width>, <height> ],
"id2": [ <x>, <y>, <width>, <height> ],
# ...
},
# ...
}

如您所见,非常简单,通过这种方式,您可以分割任何图像,甚至多个图像,为所有图像和动画创建一个源。

显然,您可以编写一个函数来轻松完成此操作,但 Kivy 也可以通过控制台命令自行完成这项工作:

python -m kivy.atlas <basename> <size> <list of images...>

然后导入单个图像裁剪只需将它们作为源引用,但使用类似 url 的语法:

Image(source='atlas://images/myatlas/id1')

因此,在此示例中,images 是文件夹,myatlas 是图集文件的名称(仅名字),id 是您为特定图像裁剪指定的 id。

简单的东西,在这里阅读更多信息:https://kivy.org/docs/api-kivy.atlas.html

关于python-3.x - Kivy 雪碧图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33934386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com