日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/11/29 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步一步图文介绍SpriteKit使用TexturePacker导出的纹理集Altas 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、為什么要使用紋理集?

游戲是一種很耗費(fèi)資源的應(yīng)用,特別是在移動設(shè)備中的游戲,性能優(yōu)化是非常重要的

紋理集是將多張小圖合成一張大圖,使用紋理集有以下優(yōu)點(diǎn):

1、減少內(nèi)存占用,減少磁盤占用;

2、減少磁盤讀取次數(shù),一次性讀取一張大圖比多次讀取多張小圖速度更快 一張大圖:打開-讀取小圖-讀取小圖-讀取小圖-關(guān)閉; 多張小圖:打開-關(guān)閉,打開-關(guān)閉,打開-關(guān)閉,打開-關(guān)閉;

3、減少OpenGL繪制次數(shù); OpenGL ES 1.1僅僅能夠使用2的n次冪大小的圖片(即寬度或者高度是2、4、8、64...)。如果采用小圖片OpenGL ES1.1會分配給每個(gè)圖片2的n次冪大小的內(nèi)存空間,即使這張圖片達(dá)不到這樣的寬度和高度也會分配大于此圖片的2的n次冪大小的空間。那么運(yùn)用這種圖片集的方式將會減少內(nèi)存碎片。雖然在Cocos2d-x v2.0后使用了OpenGL ES 2.0,它不會再分配2的幾次冪的內(nèi)存塊了,但是減少讀取次數(shù)和繪制的優(yōu)勢依然存在。

2、SpriteKit導(dǎo)入SKTexturePacker的紋理集

上官網(wǎng) www.codeandweb.com 下載 TexturePacker

沒有去除空白邊角的原始圖片

直接把圖片文件夾拖入軟件左側(cè)的導(dǎo)航欄

TexturePacker直接剪切圖片變生成一張大圖

點(diǎn)擊右下角高級設(shè)置 Advanced settings>>

選擇 Data Format 為SpriteKit,并生成Altas及Swift

并生成Altas及Swift 之前可以全選左側(cè)導(dǎo)航欄的所有圖片,并點(diǎn)擊"Anim preview" 預(yù)覽動畫

命名Altas文件夾名稱及Swift文件名(class為首字母大寫)

發(fā)布Altas及Swift

發(fā)布Altas及Swift 成功 ,查看發(fā)布結(jié)果

把Altas及Swift拖進(jìn)XCode工程內(nèi)

類JumpRight為class類,首字母應(yīng)為大寫

JumpRight內(nèi)的代碼

定位SpriteKitNode精靈節(jié)點(diǎn)在場景中的位置

實(shí)例化一個(gè)類 并代碼調(diào)用

SpriteKit 調(diào)用TexturePacker 的最終效果

SpriteKit 調(diào)用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()) // 調(diào)用圖片cat.position = CGPoint(x: CGFloat(-450), y: CGFloat(-400))cat.setScale(0.5)cat.zPosition = 1self.addChild(cat)catJump = SKSpriteNode(texture: catJumpRight.jumpRight01()) // 調(diào)用圖片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} }復(fù)制代碼

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

源碼傳送門:www.iFIERO.com/uploads/bab… 更多游戲教學(xué):www.iFIERO.com

轉(zhuǎn)載于:https://juejin.im/post/5b7bcfa56fb9a01a1e01fcf6

總結(jié)

以上是生活随笔為你收集整理的一步一步图文介绍SpriteKit使用TexturePacker导出的纹理集Altas的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。