一步一步图文介绍SpriteKit使用TexturePacker导出的纹理集Altas

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

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

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

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

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

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

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

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

发布Altas及Swift

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

把Altas及Swift拖进XCode工程内

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

JumpRight内的代码

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

实例化一个类 并代码调用

SpriteKit 调用TexturePacker 的最终效果

SpriteKit 调用TexturePacker 的源代码

//
//  GameScene.swift
//  BabeKitten 
//  Copyright © 2018 iFiero.com. All rights reserved.
//import SpriteKit
import GameplayKitclass GameScene: SKScene {let catJumpRight = JumpRight()private var cat:SKSpriteNode!private var catJump:SKSpriteNode!override func didMove(to view: SKView) {cat = SKSpriteNode(texture:catJumpRight.jumpRight01()) // 调用图片cat.position = CGPoint(x: CGFloat(-450), y: CGFloat(-400))cat.setScale(0.5)cat.zPosition = 1self.addChild(cat)catJump = SKSpriteNode(texture: catJumpRight.jumpRight01()) // 调用图片1catJump.position = CGPoint(x: CGFloat(370), y: CGFloat(-400))catJump.setScale(0.5)catJump.zPosition  = 1self.addChild(catJump)let jumpAction = SKAction.animate(with: catJumpRight.jumpRight(), timePerFrame: TimeInterval(0.05))let repeatAction = SKAction.repeatForever(jumpAction)catJump.run(repeatAction)}override func update(_ currentTime: TimeInterval) {// Called before each frame is rendered}
}复制代码

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

源码传送门:www.iFIERO.com/uploads/bab… 更多游戏教学:www.iFIERO.com

转载于:https://juejin.im/post/5b7bcfa56fb9a01a1e01fcf6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BZOJ.1007.[HNOI2008]水平可见直线(凸壳 单调栈)

题目链接 可以看出我们是要维护一个下凸壳。 先对斜率从小到大排序。斜率最大、最小的直线是一定会保留的,因为这是凸壳最边上的两段。 维护一个单调栈,栈中为当前可见直线(按照斜率排序)。 当加入一条直线l时,可以发现 如果l与栈顶直线l的交…

荷兰牛栏 荷兰售价_荷兰的公路货运是如何发展的

荷兰牛栏 荷兰售价I spent hours daily driving on one of the busiest motorways in the Netherlands when commuting was still a norm. When I first came across with the goods vehicle data on CBS website, it immediately attracted my attention: it could answer tho…

Vim 行号的显示与隐藏

2019独角兽企业重金招聘Python工程师标准>>> Vim 行号的显示与隐藏 一、当前文档的显示与隐藏 1 打开一个文档 [rootpcname ~]# vim demo.txt This is the main Apache HTTP server configuration file. It contains the configuration directives that give the s…

结对项目-小学生四则运算系统网页版项目报告

结对作业搭档:童宇欣 本篇博客结构一览: 1).前言(包括仓库地址等项目信息) 2).开始前PSP展示 3).结对编程对接口的设计 4).计算模块接口的设计与实现过程 5).计算模块接口部分的性能改进 6&…

367. 有效的完全平方数

367. 有效的完全平方数 给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。 进阶:不要 使用任何内置的库函数,如 sqrt 。 示例 1:输入&#xff1…

袁中的第三次作业

第一题: 输出月份英文名 设计思路: 1:看题目:主函数与函数声明,知道它要你干什么2:理解与分析:在main中,给你一个月份数字n,要求你通过调用函数char *getmonth,来判断:若…

Python从菜鸟到高手(1):初识Python

1 Python简介 1.1 什么是Python Python是一种面向对象的解释型计算机程序设计语言,由荷兰人吉多范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版发行于1991年。目前Python的最新发行版是Python3.6。 Python是纯粹的自由…

如何成为数据科学家_成为数据科学家需要了解什么

如何成为数据科学家Data science is one of the new, emerging fields that has the power to extract useful trends and insights from both structured and unstructured data. It is an interdisciplinary field that uses scientific research, algorithms, and graphs to…

2053. 数组中第 K 个独一无二的字符串

2053. 数组中第 K 个独一无二的字符串 独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串。 给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字符串 。如果 少于 k 个独一无二的字符串,那么返回 空字符串 “” 。 …

阿里云对数据可靠性保障的一些思考

背景互联网时代的数据重要性不言而喻,任何数据的丢失都会给企事业单位、政府机关等造成无法计算和无法弥补的损失,尤其随着云计算和大数据时代的到来,数据中心的规模日益增大,环境更加复杂,云上客户群体越来越庞大&…

linux实验二

南京信息工程大学实验报告 实验名称 linux 常用命令练习 实验日期 2018-4-4 得分指导教师 系 计软院 专业 软嵌 年级 2015 级 班次 (1) 姓名王江远 学号20151398006 一、实验目的 1. 掌握 linux 系统中 shell 的基础知识 2. 掌握 linux 系统中文件系统的…

个人项目api接口_5个免费有趣的API,可用于学习个人项目等

个人项目api接口Public APIs are awesome!公共API很棒! There are over 50 pieces covering APIs on just the Towards Data Science publication, so I won’t go into too lengthy of an introduction. APIs basically let you interact with some tool or servi…

5918. 统计字符串中的元音子字符串

5918. 统计字符串中的元音子字符串 子字符串 是字符串中的一个连续(非空)的字符序列。 元音子字符串 是 仅 由元音(‘a’、‘e’、‘i’、‘o’ 和 ‘u’)组成的一个子字符串,且必须包含 全部五种 元音。 给你一个字…

咕泡-模板方法 template method 设计模式笔记

2019独角兽企业重金招聘Python工程师标准>>> 模板方法模式(Template Method) 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤Template Me…

如何评价强gis与弱gis_什么是gis的简化解释

如何评价强gis与弱gisTL;DR — A Geographic Information System is an information system that specializes in the storage, retrieval and display of location data.TL; DR — 地理信息系统 是专门从事位置数据的存储,检索和显示的信息系统。 The standard de…

clone-graph

1. clone-graph Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. 思路:dfs,其实就是递归。 1 /**2 * Definition for undirected graph.3 * struct UndirectedGraphNode {4 * int label;5 * …

5919. 所有子字符串中的元音

5919. 所有子字符串中的元音 给你一个字符串 word ,返回 word 的所有子字符串中 元音的总数 ,元音是指 ‘a’、‘e’、‘i’、‘o’ 和 ‘u’ 。 子字符串 是字符串中一个连续(非空)的字符序列。 注意:由于对 word …

Scrum冲刺-Ⅳ

第四次冲刺任务 团队分工 成员:刘鹏芝,罗樟,王小莉,沈兴艳,徐棒,彭康明,胡广键 产品用户:王小莉 需求规约:彭康明,罗樟 UML:刘鹏芝,沈…

Github入门详情教程

前言 之前我写了一篇文章《一篇文章了解Github和Git教程》还延伸了几篇阅读,对大部分小白很有用,那么我继续普及下Github页面及其概念。 定义 GitHub 是一个网站,一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版…

机器人影视对接_机器学习对接会

机器人影视对接A simple question like ‘How do you find a compatible partner?’ is what pushed me to try to do this project in order to find a compatible partner for any person in a population, and the motive behind this blog post is to explain my approach…