Cocos2d сохраняет объект в C # - PullRequest
0 голосов
/ 17 марта 2012

У меня есть метод, который настраивает CCAnimation для меня

public CCAnimation SetupAnimations(string prefixOFSprite, int numberOfFrames, int startFrame)
    {
        //me getting desperate and doing any old initilisation
        CCAnimation finalAnimation = new CCAnimation();
        finalAnimation = CCAnimation.animation();

        for (int i = startFrame; i < numberOfFrames + 1; i++)
        {
            finalAnimation.addFrameWithFileName(prefixOFSprite + "-" + i);
        }

        float delay = 0.07f;
        finalAnimation.setDelay(delay);

        return finalAnimation;

Который я так называю

whiteDogBeginFalling = SetupAnimations("GameGraphics/dog/falling/white-falling", 7, 1)

Но анимации не запускаются, когда я запускаю игру :(Это я портирую свою игру с iOS, и я обошёл эту проблему, добавив

[whiteDogBeginFalling retain]

сразу после вызова метода.

Как вы это делаете в Cos-версии cocos2d?Или может кто-нибудь помочь мне придумать другое решение?

Заранее спасибо

1 Ответ

1 голос
/ 17 марта 2012

«обойти проблему, добавив сохранение», звучит так, как будто вы не понимали управление памятью ObjC (в то время).

Я бы исследовал возможность неправильного сохранения в коде ObjC. Поскольку в C # нет сохранения, и объект, по-видимому, освобождается в C #, это означает, что нет ссылок, удерживающих объект, поэтому он будет собирать мусор. Это означает, что сохранение в версии ObjC устранило вашу проблему освобождения объекта, но у вас может быть утечка памяти там.

Если вы сможете выяснить, как правильно исправить проблему в ObjC, вы также узнаете, что нужно сделать, чтобы исправить ее в версии C #.

...