一步一步圖文介紹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.pswp.cn/news/389884.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389884.shtml
英文地址,請注明出處:http://en.pswp.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…