沮丧的精灵 Sheet
Kivy Sprite Sheet
在 kivy 中有裁剪精灵 sheet 的方法吗?
例如,我有这个精灵 sheet:
而且我喜欢裁剪并创建一个单独的精灵列表。
像这样:
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 中有办法做到这一点吗?
我认为您希望将精灵 sheet 加载到纹理 (kivy.graphics.Texture) 中,然后在您的循环中使用精灵的纹理坐标创建一系列 TextureRegions。然后您可以通过矩形图形指令显示这些。
您还需要正确设置纹理的纹理插值,可能是'nearest'。
为了将来参考,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...>
然后导入单个 image-crops 只需将它们称为源,但使用 url 类语法:
Image(source='atlas://images/myatlas/id1')
因此,在此示例中,images 是文件夹,myatlas 是图集文件的名称(仅限名字),id 是您指定的特定 image-crop。
简单易懂的内容,请在此处阅读更多相关信息:https://kivy.org/docs/api-kivy.atlas.html
在 kivy 中有裁剪精灵 sheet 的方法吗?
例如,我有这个精灵 sheet:
而且我喜欢裁剪并创建一个单独的精灵列表。
像这样:
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 中有办法做到这一点吗?
我认为您希望将精灵 sheet 加载到纹理 (kivy.graphics.Texture) 中,然后在您的循环中使用精灵的纹理坐标创建一系列 TextureRegions。然后您可以通过矩形图形指令显示这些。
您还需要正确设置纹理的纹理插值,可能是'nearest'。
为了将来参考,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...>
然后导入单个 image-crops 只需将它们称为源,但使用 url 类语法:
Image(source='atlas://images/myatlas/id1')
因此,在此示例中,images 是文件夹,myatlas 是图集文件的名称(仅限名字),id 是您指定的特定 image-crop。
简单易懂的内容,请在此处阅读更多相关信息:https://kivy.org/docs/api-kivy.atlas.html