我需要一些幫助,瞭解從spritesheet(s)創建PIXI.extras.AnimatedSprite的最佳做法。我目前正在爲TexturePacker創建的一個動畫加載3箇中等大小的Spritesheet,我收集所有的幀並播放。然而,第一次播放動畫非常不流暢,並且幾乎立即跳到最後,從此開始播放非常流暢。我讀了一下,我可以看到2個可能的原因。 1)延遲可能是由於紋理上傳到GPU所花費的時間。有一個名爲prepare renderer.plugins.prepare.upload
的PIXI插件,它應該使我能夠在播放之前上傳它們,並且可能會平滑化初始循環。 2)從多個紋理/圖像構建AnimatedSprite並不理想,可能是原因。PIXI.js AnimatedSprite滯後於第一次播放
問題1:我應該使用PIXI Prepare插件嗎?如果有,我該如何使用它?它的文檔非常有限。
問題2:跨越多個紋理的幀是一個壞主意,可能是原因&爲什麼?
一個總結例子我在做什麼:
function loadSpriteSheet(callback){
let loader = new PIXI.loaders.Loader()
loader.add('http://mysite.fake/sprite1.json')
loader.add('http://mysite.fake/sprite2.json')
loader.add('http://mysite.fake/sprite3.json')
loader.once('complete', callback)
loader.load()
}
loadSpriteSheet(function(resource){
// helper function to get all the frames from multiple textures
let frameArray = getFrameFromResource(resource)
let animSprite = new PIXI.extras.AnimatedSprite(frameArray)
stage.addChild(animSprite)
animSprite.play()
})
我有完全相同的問題,我開始在pixi.js論壇上的主題(你可以看到我的代碼)http://www.html5gamedevs.com/topic/28032-make-movieclip-from-several-atlases並沒有時滯/但我仍然沒有回答這個問題,並準備插件似乎不工作。 –
所以,如果你找到解決方案,請把它張貼在這裏 –
很高興看到它不只是我,我還沒有找到一個好的解決方案,但我一直很忙,當/如果我做我會分享在這兩個地方。 – Brenwell