J'utilise cocos2d 0.99.4 et Xcode 4.0. donc, j'ai changé mon AppDelegate de cette manière en fonction de la documentation et de l'exemple donnés dans la version 0.99.4.Avertissement de mémoire reçu. Niveau = 2. Data Formatters temporairement indisponible, va ré-essayer après un 'continue'
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[CCDirector setDirectorType:kCCDirectorTypeDisplayLink];
CCDirector *director = [CCDirector sharedDirector];
[director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
[director setAnimationInterval:1.0/60];
[director setDisplayFPS:NO];
EAGLView *glView = [EAGLView viewWithFrame:[window bounds]
pixelFormat:kEAGLColorFormatRGBA8
depthFormat:GL_DEPTH_COMPONENT24_OES
preserveBackbuffer:NO];
[[CCDirector sharedDirector] setOpenGLView:glView];
[window addSubview:glView];
[window makeKeyAndVisible];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
gameLevel = [[NSUserDefaults standardUserDefaults] integerForKey:@"gameLevel"] ;
gameLevel = 1;
CCScene *scene = [CCScene node];
CCLayer *layer = [GamewinScreen node];
[scene addChild :layer];
[[CCDirector sharedDirector] runWithScene: scene];
}
// La méthode test1 est également dans la classe Delegate de l'application.
-(void)test1
{
[[CCDirector sharedDirector] end];
[[CCDirector sharedDirector] setOpenGLView:[[window subviews] objectAtIndex:0]];
CCScene *Scene = [CCScene node];
CCLayer *Layer = [OpeningScreen node];
[Scene addChild:Layer];
[[CCDirector sharedDirector] runWithScene: Scene];
}
En GameWinScreen J'ai un @selector sélecteur (goToFirstScreen),
-(void)goToFirstScreen:(id)sender
{
[MY_DELEGATE performSelector:@selector(test1) withObject:nil afterDelay:1.0];
}
Après avoir joué le jeu pendant 50 minutes et plus je suis obtenir
Received memory warning. Level=1
pour plus de 10 fois puis
Avertissement de mémoire reçu. Niveau = 2
et l'application plante. donnant le message suivant
Program received signal: “0”.
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")
alt text http://www.freeimagehosting.net/uploads/52ac11fe93.png
alt text http://www.freeimagehosting.net/uploads/619333a82f.png
je REPLACE première scène, mais quand je jouais le jeu pendant plus de 50 minutes en continu, il donnait la mémoire Niveau d'avertissement 1 et mémoire Avertissement de niveau 2, puis écraser. Donc, j'ai pensé à mettre fin au CCDirector et redémarrer à nouveau. Merci. –
Vous perdez de la mémoire, redémarrer le réalisateur n'aidera pas plus que le remplacement de la scène car votre calque 'OpeningScreen' est le seul de vos objets qu'il retient. Essayez d'utiliser l'instrument Leaks pour savoir quelle mémoire vous fuyez. –
J'ai vérifié avec l'outil de fuites. Il montre des fuites. Les fuites sont dans CA :: DisplayLink :: dispatch. quand j'ai cliqué dessus, il ne montre pas le programme. J'ai téléchargé les images de fuites. Pouvez-vous les regarder s'il vous plaît. Merci. –