美文网首页
SpriteKit的纹理集

SpriteKit的纹理集

作者: KevinTing | 来源:发表于2018-07-28 01:01 被阅读101次

SpriteKit纹理集

1、SpriteKit纹理集的使用非常简单,只需要将需要打包的图片放到一个文件夹,以.atlas为后缀命名,然后将文件夹拖入Xcode中即可:


image.png

项目中还可以设置纹理集的格式还有最大尺寸,这里最大尺寸有2048X2048和4096X4096两个选项,一般4096是移动设备上面OpenGL ES支持的最大尺寸。在代码中使用纹理集也很简单:

SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:@"monster"];
SKTexture *f1 = [atlas textureNamed:@"monster-walk1.png"];
SKTexture *f2 = [atlas textureNamed:@"monster-walk2.png"];
SKTexture *f3 = [atlas textureNamed:@"monster-walk3.png"];
SKTexture *f4 = [atlas textureNamed:@"monster-walk4.png"];
NSArray *monsterWalkTextures = @[f1,f2,f3,f4];

2、纹理集的工作方式:实际上Xcode在打包的时候会帮你把.atlas文件夹中的所有图片合图,图片的大小会小于等于上图中设置的最大尺寸,如果图片比较多,一个2048X2048(假设设置的最大尺寸是2048X2048)的大图放不下,那么会合成多张大图。与此同时,还会生成一个plist文件描述原来的图片在合图中的位置等信息。Xcode的这种工作方式在苹果的OpenGLES_ProgrammingGuide中有下面的描述:


  • Xcode can automatically build texture atlases for you from a collection of images. For details on creating a texture atlas, see Xcode Help. This feature is provided primarily for developers using the Sprite Kit framework, but any app can make use of the texture atlas files it produces. For each .atlas folder in your project, Xcode creates a .atlasc folder in your app bundle, containing one or more compiled atlas images and a property list (.plist) file. The property list file describes the individual images that make up the atlas and their locations within the atlas image—you can use this information to calculate appropriate texture coordinates for use in OpenGL ES drawing.

说的意思是Xcode会创建一个同名的.atlasc文件夹在包内,这个文件夹里面包含了一个或多个合图,外加一个.plist描述文件。苹果直接说这个特性虽然是为SpriteKit开发的,但是你不用SpriteKit也可以使用这个合图,比如说OpenGL ES。

3、直接编译工程,打开bundle文件夹,确实有同名的.atlasc文件夹,下面有合图的jpg文件,还有.plist文件:

image.png
.plist文件里面包括各个图片的位置信息,与TexturePacker输出的格式文件非常相似,我们大可以利用这一点在其他地方使用纹理集,不一定非要限制于SpriteKit,只是需要写一些解析的方法就行了。至于说怎么解析,可以参考我之前的文章SpriteKit导入TexturePacker导出的纹理集类似的方式即可。

参考:
https://developer.apple.com/documentation/spritekit/sktextureatlas?language=objc
https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/TechniquesForWorkingWithTextureData/TechniquesForWorkingWithTextureData.html#//apple_ref/doc/uid/TP40008793-CH104-SW1

相关文章

  • SpriteKit的纹理集

    SpriteKit纹理集 1、SpriteKit纹理集的使用非常简单,只需要将需要打包的图片放到一个文件夹,以.a...

  • SpriteKit导入TexturePacker导出的纹理集

    1、为什么要使用纹理集? 纹理集是将多张小图合成一张大图,使用纹理集有以下优点:1、减少内存占用,减少磁盘占用;2...

  • 游戏初探之二

    用的还是SpriteKit SpriteKit提供了一个图形渲染和动画的基础结构,你可以使用它让任意类型的纹理图片...

  • iOS SpriteKit 游戏

    SpriteKit是一个图形渲染和动画基础设施,你可以使用它来动画化任 意纹理图像,也称为精灵。SpriteKit...

  • 关于SpriteKit(译)

    SpriteKit提供了一个图形渲染和动画的基础结构,你可以使用它让任意类型的纹理图片或者精灵动起来。Sp...

  • Egret - 学习笔记

    1.纹理集实际上就是将一些零碎的小图放到一张大图当中。游戏中也经常使用到纹理集。使用纹理集的好处很多,我们通过将大...

  • SpriteKit从0到入门

    SpriteKit(0) - 序言SpriteKit(1) - 坐标系SpriteKit(2) - 场景过渡动画S...

  • iOS SpriteKit框架初探

    提要 SpriteKit框架是做什么的: SpriteKit is a framework that’s used...

  • SpriteKit 使用

    Scene SpriteKit 是基于 Scene 来组织的,每个 SKView(专门用来呈现 SpriteKit...

  • OC SCNPlane播放视频

    创建Game项目 引用#import 以下全部代码: SCNSc...

网友评论

      本文标题:SpriteKit的纹理集

      本文链接:https://www.haomeiwen.com/subject/ilenmftx.html