SpriteKit框架之SKTextureAtlas

耐力,是一种不显山露水的执着;是一种不惧风不畏雨的坚忍;是一种不图名不图利的忠诚。


纹理及其纹理集的简介


SpriteKit框架之浅谈SKNode及SKSpriteNode 这一篇文章中,曾经说到SKSpriteNode对象的创建方式一共是有两种的,一种是直接使用屠屏或者图片名称创建,一种是使用则是使用纹理创建,其实相比直接使用图片名称创建,使用纹理创建精灵更加的麻烦,但是为什么还是要有纹理这个创建精灵的方法呢?因为纹理一般是配合着纹理集使用的. 一个纹理集实例是一个相关的纹理的集合。它是通过一个保存在app包中的纹理集来加载的。使用纹理集可以使纹理的加载和使用更加高效。例如,如果你有一个屏幕需要绘制不同的纹理,Sprite Kit分开绘制这些纹理。如果所有的这些纹理来自同一个纹理集,那么Sprite Kit可以一次就把这些纹理全部绘制完。每当你有一些纹理总是在一起绘制,你应该把它们加到一个纹理集中.

例如下面的游戏素材中,如果我们一个一个的绘制,不仅会造成时间的浪费而是还有空间的浪费.时间的浪费就是来源于程序是一张一张图片的绘制,而使用纹理集是一次性把所有的图片绘制完成.那么空间上浪费呢?由于使用纹理集绘制纹理是把所有图片一次性绘制完成的,而且是绘制在一张图片上,把很多的空间充分的利用.所以说这样占用的空间更小.


SKTextureAtlas的使用


对于纹理图集,那你可以把它想象为一副很大的图片,其中包括动画中需要使用到的各种图片。这个图集可以看做是一个文件,它指定了每个sprite的边界范围,当在代码中需要使用时,可以将这些sprite取出来。下面我们就拿一个炸弹爆炸效果的来看一下纹理集是怎么使用的.

首先,我们需要创建一个后缀为.atlas文件夹并把所有的图片素材添加进去.这样Xcode就能识别出.atlas扩展名,进而自动的将图片合并为一个纹理图集。如图所示.

接下来把纹理文件夹添加到工程当中.

上面已经把纹理集添加到工程中了,万事俱备只欠东风,接下来在工程中新建一个名为GameScene的场景.然后创建一个SKTextureAtlas对象,代码如下.

    SKTextureAtlas *iOSTextureAtlas = [SKTextureAtlas atlasNamed:@"iOS"];

纹理集创建完成了,该如何使用呢?SKTextureAtlas有一个属性叫做textureNames,是一个数组类型,数组存储的是各个纹理的名称,我们可以通过这个数组取出对应的纹理,因为我们要制作一个爆炸效果,所以我们要把所有的纹理取出来.我们新建一个可变数组来接受所有的纹理.代码如下.

    NSMutableArray *allTextureArray = [NSMutableArray arrayWithCapacity:16];
    
    for (int i = 0; i < iOSTextureAtlas.textureNames.count; i++) {
        
        NSString *textureName = [NSString stringWithFormat:@"image%d.png",i*2+20];
        
        SKTexture *texture = [iOSTextureAtlas textureNamed:textureName];
        
        [allTextureArray addObject:textureName];
    
    }

现在allTextureArray中存储了所有的纹理对象,接下来,我们就创建一个SKSpriteNode对象,并且给它添加上动画,代码如下.

    SKSpriteNode *bombNode = [SKSpriteNode spriteNodeWithTexture:allTextureArray[0]];
    
    bombNode.position = CGPointMake(self.size.width/2, self.size.height/2);
    
    bombNode.anchorPoint = CGPointMake(0.5, 0.5);
    
    [self addChild:bombNode];
    
    //爆炸效果动画
    SKAction *animationAction = [SKAction animateWithTextures:allTextureArray timePerFrame:0.08];
    
    //repeatActionForever这个动作的效果是让动画重复执行.
    [bombNode runAction: [SKAction repeatActionForever:animationAction]];

我们看一下工程运行之后的效果图.


SpriteKit框架中的SKTextureAtlas相关内容就说到这了,最后双手奉上本文中的Demo,希望对其学习过程中有所帮助.谢谢
-->SKTextureAtlas的使用💾
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,858评论 25 707
  • iOS 苹果官方Demo合集 字数10517阅读21059评论18喜欢144 其实, 开发了这么久, 不得不说, ...
    bingo居然被占了阅读 10,118评论 2 31
  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    wo不懂阅读 1,416评论 3 3
  • 天地清澈 你的眼无边辽阔 将远方踩在脚下 攀上这高原尽头 太阳哺乳万物 你的心纳尽百川 风吹动的声音 传达到下一个...
    在山中的李老师阅读 738评论 3 1
  • 已是黄昏独自愁 更著风和雨 要么飞扬 要么沉寂 物是人非事事休 欲语泪先流 鸟儿歌声渐远 孤夜伴舞华灯...
    丹丹zjp阅读 303评论 0 0