0

在我的游戏层上添加精灵时,我遇到了一个问题。

当游戏开始时,它会初始化一个二维数组(我创建的)并在其中放入 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 何时解除分配我的精灵。

谢谢。

4

0 回答 0