在 Spritekit 中使用图像作为 tileset
Use image as tileset in Spritekit
我找不到将 this sort of images 用作我的游戏的拼贴集的方法。
有没有办法做到这一点,或者我应该一个一个地添加我想要的所有对象?
我尝试添加一个新的 Grid Tile Set,然后添加一个 Single Tile Group,但如果我尝试在 Tile Map Node 中使用它,它将使用所有图像作为一个块的纹理。
我不知道是否可行,但如果你能帮助我,我将不胜感激。
遗憾的是,您必须手动将图像分成较小的图像..
您想要的功能不存在。
您可以将您的图像用作纹理图集,但您将无法使用SKTextureAtlas
,您必须自己分解它们。
如果你查看 SKTexture,你有一个名为 init(rect: CGRect, in: SKTexture)
的初始化程序。这将为您创建一个新的 SKTexture 对象,同时仍然引用原始纹理的纹理内存 space。您将不得不使用类似 plist 的东西来加载所有 CGRRect
信息来创建这个地图集。
示例:
let textureAtlas = SKTexture(imageNamed:"CEm72.png") //I convert your jpg to png somehow
let rectDarkKnight = CGRect(x:0,y:96,width:32,height:32)
let texDarkKnight = SKTexture.init(rect: rectDarkKnight, in: textureAtlas)
我找不到将 this sort of images 用作我的游戏的拼贴集的方法。 有没有办法做到这一点,或者我应该一个一个地添加我想要的所有对象?
我尝试添加一个新的 Grid Tile Set,然后添加一个 Single Tile Group,但如果我尝试在 Tile Map Node 中使用它,它将使用所有图像作为一个块的纹理。
我不知道是否可行,但如果你能帮助我,我将不胜感激。
遗憾的是,您必须手动将图像分成较小的图像..
您想要的功能不存在。
您可以将您的图像用作纹理图集,但您将无法使用SKTextureAtlas
,您必须自己分解它们。
如果你查看 SKTexture,你有一个名为 init(rect: CGRect, in: SKTexture)
的初始化程序。这将为您创建一个新的 SKTexture 对象,同时仍然引用原始纹理的纹理内存 space。您将不得不使用类似 plist 的东西来加载所有 CGRRect
信息来创建这个地图集。
示例:
let textureAtlas = SKTexture(imageNamed:"CEm72.png") //I convert your jpg to png somehow
let rectDarkKnight = CGRect(x:0,y:96,width:32,height:32)
let texDarkKnight = SKTexture.init(rect: rectDarkKnight, in: textureAtlas)