- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不是很擅长内存管理,所以我先声明一下,但我确实尝试尽可能多地了解我当前的问题。我正在使用 Spritebuilder 制作一个应用程序(使用 cocos2d),每当我在两个场景之间切换时,我的游戏中的内存积累就会变慢。我正在查看调试导航器下的“内存”选项卡。
现在我在Spritebuilder中创建了一个新项目,看看新的应用程序是否也会出现这个问题。事实并非如此。很明显,我的身上发生了一些特别的事情。
我进一步追踪了它。我要切换到的游戏场景之一只是一个带有几个 CCButton 的简单菜单屏幕,另一个场景是一个更大的可滚动关卡 map ,其中包含许多 CCButton、许多纹理等。显然,当我切换回更复杂的关卡场景时,内存总是会积累起来。我在该关卡场景中有大约 60 个 CCButton,并决定将它们全部删除并进行相同的测试。这一次,在移除所有 CCButton 后,我没有看到内存增加(或者至少是每次切换时内存增加了 1/100)。所以我认为这是内存积累的主要原因 - 我为按钮分配内存的方式。
我在 Xcode 中打开 instruments 工具并寻找漏洞,但没有发现任何漏洞(不太擅长使用它,但它似乎有些简单)。所以我觉得我只是在分配可能不需要的内存?
此外,我不太确定“内存”选项卡的确切含义。如果随着我越来越多地使用我的应用程序而累积起来,这会是一个问题吗?下面是我用来在关卡场景中初始化按钮的方法。
-(void)createButtonAt:(CGPoint)buttonLocation buttonTitle:(NSString*)buttonTitle buttonNumber:(int)buttonNumber{
tempButton = [CCButton buttonWithTitle:buttonTitle
spriteFrame:redTile
highlightedSpriteFrame:redTile
disabledSpriteFrame:nil];
tempButton.label.color = [CCColor colorWithRed:0 green:0 blue:0];
tempButton.block = ^(id sender) {
for (int i = 1; i < buttonNumber; i++) {
[[LevelManager sharedInstance] nextLevel];
}
levelNumber = i;
[self loadMyViewController];
};
tempButton.scale = 0.3
tempButton.label.fontName = @"HelveticaNeue-Bold";
tempButton.label.fontSize = 34;
tempButton.anchorPoint = ccp(0.5, 0.5);
tempButton.position = buttonLocation;
[self addChild:tempButton];
[buttonArray addObject:tempButton];
}
第一次加载游戏时,我的大小为 14 MB。加载完所有关卡和场景后,我的文件大小约为 60 MB。之后每玩一个关卡,内存就会增加 6-7 MB。这是个问题吗?请让我知道发生这种情况是否有特定原因,或者有关如何解决此问题的一些资源。谢谢!
最佳答案
如果我记得,我认为问题出在 setBlock
上,它会导致保留周期。试试这个:
__weak id _weakSelf = self;
tempButton.block = ^(id sender) {
for (int i = 1; i < buttonNumber; i++) {
[[LevelManager sharedInstance] nextLevel];
}
levelNumber = i;
[_weakSelf loadMyViewController];
};
obcit:来自内存,未经测试,但应该可以。
关于ios - 使用 Spritebuilder 建立内存(未检测到泄漏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689314/
您好,我正在尝试安装 Spritebuilder,但它似乎不再适用于 Mac 应用商店。 我试过通过 github 安装,但我遇到了麻烦。当按照 github 上的说明操作时,我收到此错误:“fata
我无法将任何 .fnt/.png 类型的字体添加到 SpriteBuilder,因此我无法为 CCLabelBMFont 选择它们。程序是什么?文档似乎与此事无关。 我正在使用这种字体: https:
我已经将 spritebuilder 更新到新版本。 spritebuilder 不发布图像/字体。我可以在我的 SB 项目中添加和删除图像,当我单击发布时没有任何反应。如果我删除 Published
我正在尝试理解 SpriteBuilder。 我遇到了自动播放动画的问题;它的行为很奇怪。我确定我错过了一些步骤。 它在一种情况下正在运行,而在另一种情况下,当我加载 .ccb 文件时它没有运行。 当
我正在用 xcode 为 iPhone 开发一个游戏,我正在使用 spritebuilder,一开始我刚刚给它命名,现在我想更改我的 sprite builder 项目名称。 如何重命名 sprite
我正在使用 Swift (XCode 7.2.1) 和 SpriteBuilder (1.4.9) 来创建游戏。但是,我在 CCB 文件和 Swift 类之间创建代码连接时遇到一些问题。我按照网上的教
我正在使用 Objective-C 中的 SpriteBuilder 和 cocos2d 制作游戏,但不知道如何在 SpriteBuilder 中更改默认加载图像和应用程序图标。有谁知道怎么做吗 最佳
在撰写本文时,我正在使用最新版本的 XCode 和 SpriteBuilder。 我有 2 个游戏,其中一个是在 XCode 上纯粹使用 Objective-C 构建的,另一个是在 XCode 上使用
我正在尝试通过代码在一些 CCSprite 上设置颜色叠加层,就像使用 Spritebuilder 所做的那样 - 它会在图像上放置颜色叠加层。但是我能找到的就是 sprite.color = CCR
我在 sprit builder 资源文件夹中添加了一个 .png 图像并发布了它。 我在 Published-IOS 下 Resources 的 all 文件夹中看到添加的图像。 这里我尝试通过以下
我正在尝试使用 sprite builder 和 swift 创建一个游戏。在游戏中玩家可以改变,例如屏幕中央是婴儿的鞋子,而屏幕左侧有不同种类的鞋子供玩家选择。在 spritebuilder 中,我
我正在使用 sprite builder 制作 iOS 游戏。我围绕棋盘游戏风格设计了它。我希望用户按下触发 play 方法的播放按钮。然后它会生成一个应显示在标签上的随机数。标签和按钮在游戏场景中。
我无法让它工作,这让我发疯。我只是想在调用时播放我的动画。我正在使用 Spritebuilder 和 Cocos2d。我有一个 CCNode,我正在使用 将其导入到场景中 #import "heroC
我正在使用 Spritebuilder 查看 CCScenes 之间的各种转换。目前我可以使用 CCScene *gameplayScene = [CCBReader loadAsScene:@"ki
我做了一个测试项目: 标准版:1.4.7某人修订:10891b8Xcode 版本 6.2 (6C131e) 并导出到xcode项目。运行该xcode项目,一切正常。应用程序图标正常显示。之后,我尝试使
我不是很擅长内存管理,所以我先声明一下,但我确实尝试尽可能多地了解我当前的问题。我正在使用 Spritebuilder 制作一个应用程序(使用 cocos2d),每当我在两个场景之间切换时,我的游戏中
我正在开发的特定 SpriteBuilder 应用程序使用 SpriteBuilder SB 版本 1.4.7、X Code 6.2 以及 iOS 8.2 iPhone 部署和功能 ccPhysics
我刚刚将我的 Cocos2D 更新到最新版本。我正在使用 xcode 5.1 并且也在使用 Spritebuilder。更新我的 xcode 后,我的应用程序出现了很多错误和问题。这非常令人沮丧,因为
在与 cocos2d 一起创建 UI 的工具 spritebuilder 中,为什么每当我尝试将背景图像添加到 CCButton 时,它会以某种方式拉伸(stretch)或改变? 这很难解释,但在摆弄
你好!我的游戏快完成了。但现在我想添加广告。我使用 ADMob。我把说明涂红了,但我没有 ViewController。因为我在 Cocos2d 中编码并使用 SpriteBuilder 连接所有内容
我是一名优秀的程序员,十分优秀!