gpt4 book ai didi

ios - SpriteKit 丢失纹理

转载 作者:行者123 更新时间:2023-12-03 17:21:54 28 4
gpt4 key购买 nike

我正在制作基于SpriteKit的多级游戏。

一切正常,除了一件事:当用户玩很长时间、改变很多关卡等时......然后 SpriteKit 开始丢失纹理。

我的意思是,没有像图像加载失败时那样的大红叉,而是空白,就像什么都没有一样。

数小时的调试和谷歌搜索没有产生任何结果。

我该如何处理这个错误?

最佳答案

我想我可能遇到了相关问题,除了当我在 SKSpriteNode 上快速运行操作时会发生纹理丢失。在我的代码中,每次触摸时我都会运行一个 Action ,当触摸快速并且动画快速触发时,SKSpriteNode 的基本纹理似乎消失了。没有内存警告,也没有控制台的任何提示; SKSpriteNode 的纹理神奇地设置为 nil。

从您的问题中我得到的印象是,这不是您的确切原因,但您有相同的症状。不幸的是我不知道是什么原因造成的。为了解决这个问题,我所做的就是在运行 SKAction 后不断检查 SKSprite 节点上的纹理是否已设置为 nil,然后根据需要重新分配它。

所以,我正在做的事情的缩写版本(用 Swift 编写)如下所示:

func doAnimation(  ) {

_character.runAction(someSKAction, withKey: "animation")

//Whoops!, we lost our base texture again!
if _character.texture == nil {
let atlas = SKTextureAtlas(named: "someAtlasName")
let texture = atlas.textureNamed("idleFrame" )
_character.texture = texture
}
}

这并不是真正的解决方案,而是一种解决方法,但它可能会适应您的情况,直到您(或其他人)弄清楚为止。我不会争辩说它并不丑陋。

顺便说一句,您并不是唯一一个遇到纹理消失问题的人;我对类似问题写了类似的回复here .

关于ios - SpriteKit 丢失纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22576966/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com