惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
L
LangChain Blog
C
Check Point Blog
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
美团技术团队
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
腾讯CDC
B
Blog
G
Google Developers Blog
The Cloudflare Blog
P
Proofpoint News Feed

博客园 - 布袋

Phaser游戏框架与HTML Dom元素之间的通信交互 Phaser Matter Collision Plugin 碰撞插件 -- iFiero技术分享 Phaser3跟随自定义路径移动的赛车 -- iFIERO游戏教程 用EC5/EC6自定义class的区别及用法 -- Phaser3网页游戏框架 Phaser3让超级玛丽实现轻跳、高跳及加上对应的跳跃声音 PHASER3 设置场景SCENE SLEEPING休眠和WAKE唤醒 Phaser3游戏三角学应用--一只跟随屏幕点击位置游动的鱼 Phaser3 对象池随机产生炸弹并销毁 Phaser3 场景Scene之间的传值 -- HTML JAVASCRIPT 网页游戏开发 Phaser3 屏幕适配iPhoneX、iPhoneXs的坑 -- JavaScript Html5 游戏开发 GameplayKit的GKStateMachine用法与实例 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域 Swift使用AVAudioPlayer来调节游戏的背景音乐大小 学好三角学(函数) — SWIFT和JAVASCRIPT游戏开发的必备技能 iFIERO.com 应用UserDefaults储存游戏分数和最高分 SpriteKit在复制节点时留了一个巨坑给开发者,需要开发者手动把复制节点的isPaused设置为false 运用GamePlayKit的GKEntity及GKComponent 的iOS游戏开发实例 SpriteKit手机游戏摇杆JoyStick的使用 -- by iFIERO游戏开发教程 SpirteKit深度复制SKSpriteNode节点及convert转换其它Scene上的节点到当前场景坐标
一步一步图文介绍SpriteKit使用TexturePacker导出的纹理集Altas
布袋 · 2018-08-21 · via 博客园 - 布袋

1、为什么要使用纹理集?

游戏是一种很耗费资源的应用,特别是在移动设备中的游戏,性能优化是非常重要的

纹理集是将多张小图合成一张大图,使用纹理集有以下优点:

1、减少内存占用,减少磁盘占用;

2、减少磁盘读取次数,一次性读取一张大图比多次读取多张小图速度更快
一张大图:打开-读取小图-读取小图-读取小图-关闭;
多张小图:打开-关闭,打开-关闭,打开-关闭,打开-关闭;

3、减少OpenGL绘制次数;
OpenGL ES 1.1仅仅能够使用2的n次幂大小的图片(即宽度或者高度是2、4、8、64...)。如果采用小图片OpenGL ES1.1会分配给每个图片2的n次幂大小的内存空间,即使这张图片达不到这样的宽度和高度也会分配大于此图片的2的n次幂大小的空间。那么运用这种图片集的方式将会减少内存碎片。虽然在Cocos2d-x v2.0后使用了OpenGL ES 2.0,它不会再分配2的几次幂的内存块了,但是减少读取次数和绘制的优势依然存在。

2、SpriteKit导入SKTexturePacker的纹理集

上官网 www.codeandweb.com 下载 TexturePacker

1_texturePacker下载_www.codeandweb.com.png

1_texturePacker下载_www.codeandweb.com.png

没有去除空白边角的原始图片


1_texturePacker用法.png

1_texturePacker用法.png

直接把图片文件夹拖入软件左侧的导航栏


2_texturePacker用法_拖动.png

2_texturePacker用法_拖动.png

TexturePacker直接剪切图片变生成一张大图


3_texturePacker用法_自动剪切.png

3_texturePacker用法_自动剪切.png

点击右下角高级设置 Advanced settings>>


4_texturePacker用法_高级设置.png

4_texturePacker用法_高级设置.png

选择 Data Format 为SpriteKit,并生成Altas及Swift


5_texturePacker用法_生成Atlas.png

5_texturePacker用法_生成Atlas.png

并生成Altas及Swift 之前可以全选左侧导航栏的所有图片,并点击"Anim preview" 预览动画


6_texturePacker用法_预览动画.png

6_texturePacker用法_预览动画.png

命名Altas文件夹名称及Swift文件名(class为首字母大写)


7_texturePacker用法_生成Atals_swift.png

7_texturePacker用法_生成Atals_swift.png

发布Altas及Swift


8_texturePacker用法_发布.png

8_texturePacker用法_发布.png

发布Altas及Swift 成功 ,查看发布结果


9_texturePacker用法_发布结果.png

9_texturePacker用法_发布结果.png

把Altas及Swift拖进XCode工程内


10_texturePacker用法_导入atlasc及swift文件.png

10_texturePacker用法_导入atlasc及swift文件.png

类JumpRight为class类,首字母应为大写


11_texturePacker用法_swift类Class首写字母为大写.png

11_texturePacker用法_swift类Class首写字母为大写.png

JumpRight内的代码


12_texturePacker用法_JumpRight类.png

12_texturePacker用法_JumpRight类.png

定位SpriteKitNode精灵节点在场景中的位置


13_texturePacker用法_scene定位精灵.png

13_texturePacker用法_scene定位精灵.png

实例化一个类 并代码调用


14_texturePacker用法_代码调用.png

14_texturePacker用法_代码调用.png

SpriteKit 调用TexturePacker 的最终效果


15_texturePacker用法_最终效果.png

15_texturePacker用法_最终效果.png

SpriteKit 调用TexturePacker 的源代码

//
//  GameScene.swift
//  BabeKitten 
//  Copyright © 2018 iFiero.com. All rights reserved.

以上就是使用TexturePacker的所有步聚及源码!

源码传送门:http://www.iFIERO.com/uploads/babeKitten.zip
更多游戏教学:http://www.iFIERO.com