【发布时间】:2017-07-30 11:35:13
【问题描述】:
我需要一些帮助来了解从 spritesheet(s) 创建 PIXI.extras.AnimatedSprite 的最佳做法。我目前正在为由 TexturePacker 创建的 1 个动画加载 3 个中型 spritesheets,我收集所有帧然后播放。不过第一次播放动画很不流畅,几乎是直接跳到最后,之后就真的流畅了。我读了一点,我可以看到 2 个可能的原因。 1) 延迟可能是由于将纹理上传到 GPU 所花费的时间。有一个名为 prepare renderer.plugins.prepare.upload 的 PIXI 插件,它可以让我在播放之前上传它们,并可能平滑初始循环。 2) 从多个纹理/图像构建 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 论坛上开始了话题(你可以在那里看到我的代码)html5gamedevs.com/topic/… 但我仍然没有答案,准备插件似乎没有工作。
-
如果您找到解决方案,请在此处发布
-
很高兴看到它不仅仅是我,我还没有找到一个好的解决方案,但我一直很忙,如果我这样做了,我会在这两个地方分享。
标签: javascript sprite-sheet pixi.js texturepacker