我有一个为我设置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]
方法调用后直接。
如何在cocos2d的C#版本中执行此操作?或者任何人都可以帮我提出另一种解决方案吗?
提前致谢
答案 0 :(得分:1)
“通过添加retain来解决问题”听起来像你不了解ObjC内存管理(当时)。
我会调查ObjC代码中保留的可能性是错误的。由于C#中没有保留,并且该对象显然是在C#中释放的,这意味着没有引用保持对象,因此它将被垃圾收集。这表明ObjC版本中的保留修复了释放对象的问题,但是那里可能存在内存泄漏。
如果你能弄清楚如何在ObjC中正确解决问题,你也会知道如何在C#版本中修复它。