- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在构建一个针对新的 iOS 7 和 Sprite Kit 的 iOS 游戏,使用发射器节点和物理来增强游戏玩法。在开发应用程序时,我遇到了一个严重的问题:你创建了你的场景、节点、效果,但是当你完成并需要返回主屏幕时,你如何释放这些资源分配的所有内存?
理想情况下,ARC 应该释放所有内容,应用程序应该恢复到创建场景之前的内存消耗水平,但事实并非如此。
我添加了以下代码,作为 View 的 dealloc 方法,它绘制场景并负责在关闭(移除)时移除所有内容:
- (void) dealloc
{
if (scene != nil)
{
[scene setPaused:YES];
[scene removeAllActions];
[scene removeAllChildren];
scene = nil;
[((SKView *)sceneView) presentScene:nil];
sceneView = nil;
}
}
对于此事,我将不胜感激。
最佳答案
我在使用 Sprite Kit 时遇到了很多内存问题,我使用了技术支持票来获取信息,它可能与此处有关。我在问是否开始一个新的 SKScene 会完全释放前一个使用的所有内存。我发现了这一点:
由 +textureWithImageNamed: 分配的底层内存在切换到新的 SKScene 时可能会也可能不会(通常不会)被释放。你不能依赖那个。 iOS 在它认为合适时释放由 +textureWithImageNamed: 或 +imageNamed: 缓存的内存,例如当它检测到内存不足的情况时。
如果您希望在处理完纹理后立即释放内存,则必须避免使用 +textureWithImageNamed:/+imageNamed:。创建 SKTextures 的替代方法是:首先使用 +imageWithContentsOfFile: 创建 UIImages,然后通过调用 SKTexture/+textureWithImage:(UIImage*) 从生成的 UIImage 对象创建 SKTextures。
不知道对你有没有帮助。
关于iOS 7 Sprite Kit 释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19251337/
我没有使用 Sprite Kit 的经验。我想知道是否有类似 Cocos2D 的东西 调度程序在 SpriteKit 中?如果不是,应该用什么 NSTimer 是唯一的选择吗?我想如果唯一的选择是使用
在我的 Sprite Kit 应用程序中,我想要一个粘性物理体:任何与该物体接触的动态物体都不会反弹,而是与其保持连接。 是否有任何属性可以执行这种粘性行为?如果不能,如何实现? 最佳答案 SKNod
在我的 Sprite Kit 应用程序中,我想要一个粘性物理体:任何与该物体接触的动态物体都不会反弹,而是与其保持连接。 是否有任何属性可以执行这种粘性行为?如果不能,如何实现? 最佳答案 SKNod
我正在构建一个 flappy bird 游戏,其中一半关卡在水上,另一半关卡在水下。 如果您的小鸟在空中,则存在规律的重力,当您轻敲时,会施加一个直线向上的冲量。 如果你的鸟在水中,重力应该在负方向(
我正在使用 Sprite 套件制作游戏,现在我想知道让对象“跳跃”的最佳方法是什么。所以它将以几个像素垂直启动。 这是我要跳转的对象的代码: SKSpriteNode *sprite = [SKSpr
我很好奇如何为我的游戏显示像素艺术。现在我只是将 SKScene 的大小调整为 sceneWithSize:CGSizeMake(256, 192) 这是正确的方法还是有更好的方法来进行这种排序任务?
我不知道如何阻止节点旋转。 为什么允许旋转没有禁用它? 这是我描述我的节点的方式: SKSpriteNode *badguy = [SKSpriteNode spriteNodeWithTexture
我在 Xcode 中使用 Sprite Kit,我想知道如何更改重力方向。默认重力方向为“X”,您可以在轴下方的图形上想象。如果我想更改为“Y”怎么办。 我的目标是给予物体坠落效果。它就像从高处坠落并
我想知道如何在屏幕外删除我的 SKNode 以帮助我的游戏运行更流畅。 如何在 Sprite Kit 上做到这一点 非常感谢 最佳答案 https://stackoverflow.com/a/2419
我有一个关于“WEBKIT”的问题。什么是 WebKit?什么是 Android WebKit 以及它与 IOS WEbKit 有何不同?如何使用 WebKit?想要完美清晰的答案。有人有什么想法吗?
在我的 Sprite 套件游戏中,当两个 Sprite 发生碰撞时,我使用 SKAction 播放 mp3 文件。虽然游戏运行良好,但我在第一次播放声音时注意到游戏中有一个小的“hickup”。整个游
我正在创建一个游戏,对于我的角色,他的腿和躯干有单独的动画,因此它们是具有单独物理体的单独节点。我在将躯干和腿连接在一起时遇到了很多麻烦,但是,将它们连接起来不是问题,让它们保持连接才是问题。在四处走
Sprite Kit 是否具有相当于 9 切片缩放的 Sprite ? 我试过谷歌搜索,但没有找到任何东西,但是......它通常是一个在不同框架中有不同名称的功能。所以我可能会错过它。 最佳答案 S
我正在 Sprite Kit 中制作“Achtung die kurve”克隆。对于不断移动的队伍/球员,我使用 CGMutablePathRef 和 SKShapeNode。在更新方法中我正在这样做
我正在尝试开发一个building information model iPad 的查看器,我面临着当前的挑战。我应该使用 SpriteKit 还是 SceneKit?我知道 SceneKit 是用来
在 iPhone ios10 上安装后,我的 ready to ship appstore 应用程序不再播放声音!帮助!使用 ios9,一切都完美运行 SKAction.playSoundFileNa
如何将 CIPixellate 核心图像过滤器添加到 Sprite Kit 场景中? 我有一个 SpriteKit 场景,它是 SKScene 或其子类。 我想在场景中添加一个核心图像过滤器。特别是
这似乎不是一个明智的问题,但我心中有一些困惑,我想澄清。在Apple的2d游戏框架Sprite kit中,通常建议将节点相关的数据存储在Plist中,然后在代码中需要时检索。我不明白的是,在使用 .s
这似乎不是一个明智的问题,但我心中有一些困惑,我想澄清。在Apple的2d游戏框架Sprite kit中,通常建议将节点相关的数据存储在Plist中,然后在代码中需要时检索。我不明白的是,在使用 .s
我试图让用户能够将 skspritenode 拖到 UIImageView 和 UIButton 上,但每当我创建场景时,它都会出现在 UI 元素后面。我该如何解决这个问题? 最佳答案 恐怕这是不可能
我是一名优秀的程序员,十分优秀!