windows - Cocos2d beholder et objekt i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en metode, der opretter CCAnimation s for mig


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;


Som jeg kalder sådan her


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


Men animationerne spiller ikke, når jeg kører spillet :( Dette er mig, der overfører mit spil fra iOS, og jeg fik rundt dette problem ved at tilføje


[whiteDogBeginFalling retain]


lige efter metoden opkald.


Hvordan gør du dette i C # versionen af ​​cocos2d? Eller kan nogen hjælpe mig med at komme med en anden løsning?


Tak på forhånd

Bedste reference


'at komme rundt om et problem ved at tilføje behold' lyder som om du ikke forstod ObjC memory management (på det tidspunkt).


Jeg vil undersøge muligheden for, at beholdningen i ObjC-koden er forkert at begynde med. Da der ikke er nogen beholdning i C #, og objektet tilsyneladende er udgivet i C #, betyder det, at der ikke er nogen referencer, der holder fast på objektet. Derfor vil det blive opsamlet affald. Det tyder på, at beholdningen i ObjC-versionen har fastgjort dit problem med udgivelse objektet, men du kan have en hukommelsesleje der.


Hvis du kan finde ud af, hvordan du løser problemet korrekt i ObjC, så ved du også hvad du skal gøre for at rette det i C # -versionen.