2016-11-11 64 views
2

我没有找到一种方法来使用this sort of images作为我游戏的贴图集。 有没有办法做到这一点,还是应该添加我想要的所有对象?在Spritekit中使用图像作为tileset

我尝试添加一个新的网格贴砖然后设置一个单块组,但如果我尝试在瓷砖地图节点来使用它,它会使用所有的图像纹理一个街区。

我不知道是否有可能,但如果你能帮助我,我将不胜感激。

+0

的[瓷砖地图编辑器(http://www.mapeditor.org/)能够读取这种地形设置的。阅读更多在这[平铺地图编辑器介绍](https://gamedevelopment.tutsplus.com/tutorials/introduction-to-tiled-map-editor-a-platform-agnostic-tool-for-level-maps--gamedev -2838)文章。虽然这与SpriteKit中的“SKTilemapNode”不兼容,但您需要做额外的工作才能在SpriteKit中使用该地图。 –

回答

2

不幸的是,你必须将图像分为手动较小的图像..

你只想不存在的功能。

+0

Okey,谢谢你队友 – Marsgames

+0

不用担心GL与你的应用程序 –

1

您可以使用图片作为纹理地图,但你将无法使用SKTextureAtlas,你将不得不打破他们出你的自我。

如果你看SKTexture,你有一个名为init(rect: CGRect, in: SKTexture)的初始化。这将为您创建一个新的SKTexture对象,同时仍然引用原始纹理的纹理内存空间。你只需要使用像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) 
+0

谢谢,请试试这个 – Marsgames

+1

谢天谢地,你的贴图不是最优的。它甚至会因为优化纹理而变得更疯狂,因为你必须从图集中获取最小的数量,并将其余部分放在精灵上。无论如何,我不知道如何处理SKTexture的填充 – Knight0fDragon