当我点击AdView时,CCMenuItem响应

问题描述:

我使用kobold2d v2.1.0,并根据Google的说明将AdMob Mediation SDK添加到我的项目中。当我点击AdView时,CCMenuItem响应

我创建了AdViewController并将其视图添加到rootViewController.view

AdViewController.m:

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Initialize the banner at the bottom of the screen. 
    CGPoint origin = CGPointMake(0.0, 
        self.view.frame.size.height - 
        CGSizeFromGADAdSize(kGADAdSizeBanner).height); 

    // Use predefined GADAdSize constants to define the GADBannerView. 
    self.adBanner = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner 
               origin:origin]; 

    // before compiling. 
    self.adBanner.adUnitID = AD_UNIT_ID; 
    self.adBanner.delegate = self; 
    [self.adBanner setRootViewController:self]; 
    [self.view addSubview:self.adBanner]; 
    self.adBanner.center = 
    CGPointMake(self.view.center.x, self.adBanner.center.y); 
    [self.adBanner loadRequest:[self createRequest]]; 
} 

AppDelegete.m

-(void) initializationComplete 
{ 
    adViewController = [[AdViewController alloc] init]; 
    [self.rootViewController.view addSubview:adViewController.view]; 
} 

-(id) alternateView 
{ 
    // we want to be a dummy view the self.view to which we add the glView plus all other UIKit views 
    KKAppDelegate* appDelegate = (KKAppDelegate*)[UIApplication sharedApplication].delegate; 

    // add a dummy UIView to the view controller, which in turn will have the glView and later other UIKit views added to it 
    CGRect bounds = [appDelegate.window bounds]; 
    UIView* dummyView = [[UIView alloc] initWithFrame:bounds]; 

    [dummyView addSubview:[CCDirector sharedDirector].view]; 

    return dummyView; 
} 

当我点击广告区域被显示之前的广告,位于远程的,如果我挖掘CCMenuItemCCMenuItem被按下。

请看看这个

image

我认为这是关系到this question,但我不知道如何解决它。

请让我知道如何防止CCMenuItem响应远程位置的点击。

对不起,我不擅长英语。

我通过更改CCMenu.m中的(CCMenuItem *)itemForTouch:(UITouch *)touch方法解决了该问题。

-(CCMenuItem *) itemForTouch: (UITouch *) touch 
{ 
    //CGPoint touchLocation = [touch locationInView: [touch view]]; 
    /*changed*/ CGPoint touchLocation = [touch locationInView: [CCDirector sharedDirector].view]; 
    touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation]; 

    ....... 

} 

更改之前[touch view]是AdView,所以CCMenu得到了错误的坐标。我的名字是this question