微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 STI 为 love2d 游戏加载平铺地图时出现问题

如何解决使用 STI 为 love2d 游戏加载平铺地图时出现问题

我一直在开发一款小型 love2D 游戏,但我的 Tiled 文件遇到了问题,我以 Lua 格式为 Simple Tiled Imp 导出了该文件。尽管我只使用了一个图块集,但尝试加载文件总是会导致错误“STI 尚不支持图块集合”。我已经四处寻找这究竟意味着什么的答案,或可能的解决方案,但一无所获......任何帮助将不胜感激。 :) (总的来说,我对 love 和 Lua 真的很陌生,抱歉,如果这是一个菜鸟问题)

解决方法

您可以这样做:

在任何网络搜索中输入“STI 尚不支持 Tile Collections”。 www.google.com 会生成一个论坛帖子,例如回答您的问题。

它告诉您需要创建一个 texture atlas

第二次命中:

来自https://github.com/karai17/Simple-Tiled-Implementation/blob/704c78c1c155679dc7ad84cd76dfa5d8d78baf25/sti/init.lua#L99

assert(tileset.image,"STI 不支持瓷砖集合。\n你 需要创建一个纹理图集。”)

因此当任何图块集没有 image 字段时会触发此错误消息。

我还没有检查历史记录,所以我不确定您是否使用的是该模块的过时版本,或者您是否只是没有阅读完整的错误消息来告诉您该怎么做。

您需要创建一个纹理图集

您可以使用纹理图集生成器来创建纹理图集。同样,网络搜索是您的朋友。

,

阅读:使用四边形显示图像的一部分: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,quads[1]:getDimensions()),[2]=love.graphics.newQuad(505,37,[3]=love.graphics.newQuad(871,21,[4]=love.graphics.newQuad(1238,22,[5]=love.graphics.newQuad(1606,15,[6]=love.graphics.newQuad(1974,11,[7]=love.graphics.newQuad(1976,349,[8]=love.graphics.newQuad(136,382,[9]=love.graphics.newQuad(504,379,[10]=love.graphics.newQuad(871,366,[11]=love.graphics.newQuad(1236,362,[12]=love.graphics.newQuad(19,724,[13]=love.graphics.newQuad(1047,698,[14]=love.graphics.newQuad(1376,687,[15]=love.graphics.newQuad(1721,686,[16]=love.graphics.newQuad(2042,684,[17]=love.graphics.newQuad(347,704,660,quads[1]:getDimensions())
}
pquads={x=0,size=1,time=-1}
for i=1,#assets do table.insert(pquads,assets[i]) end

...其中第一对 newQuad(138, 是 PNG 图像中的左上角位置,最后一对 300, 是单个图块的大小。
瓷砖的位置可以在 gimp 或 photoshop 等程序中显示。
只需将光标移动到磁贴的左上角并查看状态栏。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。