0

私はiPhoneでcocos2dゲームに取り組んでいます。ゲームは完璧に動作します。
次に、ゲームのメニューにAdMob広告を追加します。広告は表示されますが、数秒(または数分)再生すると、ゲームがクラッシュします(エラーメッセージは表示されません...)
問題がどこにあるかわかりますか?

Menu.h

@interface Menu : CCColorLayer <AdMobDelegate> {  
    AdMobView *adMobAd;  
    NSTimer *refreshTimer;  
} 

Menu.m

+(id) scene {...}  
-(id) init {...}  
-(void) dealloc {...}

- (void)didReceiveAd:(AdMobView *)adView {  
    adMobAd.frame = CGRectMake(-260, 432, 320, 48);  
    CGAffineTransform makeLandscape = CGAffineTransformMakeRotation(M_PI * 0.5f);  
    makeLandscape = CGAffineTransformTranslate(makeLandscape, -216, -134);  
    adMobAd.transform = makeLandscape;  
    [[[CCDirector sharedDirector] openGLView] addSubview:adMobAd];  
    [refreshTimer invalidate];  
    refreshTimer = [NSTimer scheduledTimerWithTimeInterval:AD_REFRESH_PERIOD target:self selector:@selector(refreshAd:) userInfo:nil repeats:YES];  
}  

- (UIViewController *)currentViewController {
    return nil;
}

- (void)onEnter {
    adMobAd = [AdMobView requestAdWithDelegate:self];
    [adMobAd retain];
    [super onEnter];
}

- (void)onExit {
    [adMobAd removeFromSuperview];
    [adMobAd release];
    [super onExit];
}

- (void)refreshAd:(NSTimer *)timer {
    [adMobAd requestFreshAd];
}

- (NSString *)publisherId {
    return @"zzzzzzzzzzzzzz";
}

- (UIColor *)adBackgroundColor {
    return [UIColor colorWithRed:0.2 green:0.6 blue:1 alpha:1];
}

- (UIColor *)primaryTextColor {
    return [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
}

- (UIColor *)secondaryTextColor {
    return [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
}

- (BOOL)mayAskForLocation {
    return NO;
}

ありがとう!:-)

4

1 に答える 1

1

I'd suggest you get rid of the NSTimer and use a CCTimer instead (and schedule it using CCScheduler).

You can do it with this code:

    refreshTimer = [CCTimer timerWithTarget:self
                                   selector:@selector(refreshAd:)
                                   interval:AD_REFRESH_PERIOD];
    [[CCScheduler sharedScheduler] scheduleTimer:refreshTimer];
于 2010-05-07T20:08:13.117 に答える