【发布时间】:2021-07-05 16:59:17
【问题描述】:
我从事小型 Love2D 游戏已经有一段时间了,但在我以 Lua 格式为 Simple Tiled Imp 导出的 Tiled 文件中遇到了问题。尽管我只使用了一个图块集,但尝试加载文件总是会导致错误“STI 尚不支持图块集合”。我已经四处寻找这究竟意味着什么或可能的解决方案的答案,但一无所获……任何帮助将不胜感激。 :) (总的来说,我对 Love 和 Lua 很陌生,如果这是一个菜鸟问题,我很抱歉)
【问题讨论】:
我从事小型 Love2D 游戏已经有一段时间了,但在我以 Lua 格式为 Simple Tiled Imp 导出的 Tiled 文件中遇到了问题。尽管我只使用了一个图块集,但尝试加载文件总是会导致错误“STI 尚不支持图块集合”。我已经四处寻找这究竟意味着什么或可能的解决方案的答案,但一无所获……任何帮助将不胜感激。 :) (总的来说,我对 Love 和 Lua 很陌生,如果这是一个菜鸟问题,我很抱歉)
【问题讨论】:
您可以这样做:
在任何网络搜索中输入“STI 尚不支持 Tile Collections”。例如,www.google.com 会生成一个回答您问题的论坛帖子。
它告诉你需要创建一个texture atlas
第二次命中:
assert(tileset.image, "STI 不支持 Tile Collections。\n你 需要创建一个纹理图集。”)
所以当任何瓦片集没有image 字段时会触发此错误消息。
我没有查看历史记录,所以我不确定您是否使用了该模块的过时版本,或者您是否只是没有阅读完整的错误消息来告诉您该怎么做。
您需要创建纹理图集
您可以使用纹理图集生成器来创建纹理图集。同样,网络搜索是您的朋友。
【讨论】:
阅读:使用 Quad 显示图像的一部分:https://love2d.org/wiki/love.graphics.newQuad
就像这个例子中的一张图片中的不同行星......
quads={love.graphics.newImage("planets.png")
}
local assets={x=0,y=0,size=.1,time=-1,
[1]=love.graphics.newQuad(138,33,300,300,quads[1]:getDimensions()),
[2]=love.graphics.newQuad(505,37,300,300,quads[1]:getDimensions()),
[3]=love.graphics.newQuad(871,21,300,300,quads[1]:getDimensions()),
[4]=love.graphics.newQuad(1238,22,300,300,quads[1]:getDimensions()),
[5]=love.graphics.newQuad(1606,15,300,300,quads[1]:getDimensions()),
[6]=love.graphics.newQuad(1974,11,300,300,quads[1]:getDimensions()),
[7]=love.graphics.newQuad(1976,349,300,300,quads[1]:getDimensions()),
[8]=love.graphics.newQuad(136,382,300,300,quads[1]:getDimensions()),
[9]=love.graphics.newQuad(504,379,300,300,quads[1]:getDimensions()),
[10]=love.graphics.newQuad(871,366,300,300,quads[1]:getDimensions()),
[11]=love.graphics.newQuad(1236,362,300,300,quads[1]:getDimensions()),
[12]=love.graphics.newQuad(19,724,300,300,quads[1]:getDimensions()),
[13]=love.graphics.newQuad(1047,698,300,300,quads[1]:getDimensions()),
[14]=love.graphics.newQuad(1376,687,300,300,quads[1]:getDimensions()),
[15]=love.graphics.newQuad(1721,686,300,300,quads[1]:getDimensions()),
[16]=love.graphics.newQuad(2042,684,300,300,quads[1]:getDimensions()),
[17]=love.graphics.newQuad(347,704,660,300,quads[1]:getDimensions())
}
pquads={x=0,y=0,size=1,time=-1}
for i=1,#assets do table.insert(pquads,assets[i]) end
...其中第一对newQuad(138,33, 是PNG 图像的左上角,最后一对300,300,quads[1]:getDimensions()), 是单个图块的大小。
瓷砖的位置可以在 gimp 或 photoshop 等程序中显示。
只需将光标移动到磁贴的左上角并查看状态栏。
【讨论】: