在我的游戏层上添加精灵时,我遇到了一个问题。
当游戏开始时,它会初始化一个二维数组(我创建的)并在其中放入 30 个精灵(5 列,6 行)。我用于 30 个精灵的图像总是相同的。
问题是每次我创建一个新的精灵......
每 3 秒,所有精灵都会消失,新的精灵会出现。我正在使用 ARC,但是当我检查仪器(分配部分)时,我可以看到活着的精灵的数量每 3 秒 30、60、90、120 ......
因此,当我玩 15 分钟时,我的游戏崩溃了。如何在不创建新精灵的情况下使用相同的精灵?
我尝试在 init 方法中创建它,但是当我输入 [self addChild : mysprite] 时,它告诉我精灵已经被添加。
这是我的代码:
int yValue = 400;
for (int line = 0; line < nbLines; line++) {
int xValue = 32;
for (int section = 0; section < nbSection ; section++) {
MySprite *mySprite = [[MySprite alloc] initWithFile:@"mySprite.png"];
mySprite.position = ccp(xValue, yValue);
[gameTab setObject:mySprite :section :line];
[self addChild:mySprite];
xValue += 64;
}
yValue -= 64;
}
这是我为删除精灵所做的:
[gameTab removeChild:mySprite cleanup:YES];
[self removeChild:mySprite cleanup:YES];
我不知道 ARC 何时解除分配我的精灵。
谢谢。