Когда я нажимаю AdView, CCMenuItem отвечает

Я использую kobold2d v2.1.0 и добавил AdMob Mediation SDK в свой проект в соответствии с инструкциями Google.

Я создал 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;
}

Когда я нажимаю область рекламы до того, как реклама отображается, удаленно нажимается CCMenuItem, как если бы я нажимал CCMenuItem.

Пожалуйста, посмотрите на это

изображение

Я думаю, что это связано с этим вопросом, но я не знаю как это решить.

Пожалуйста, дайте мне знать, как запретить CCMenuItem реагировать на прикосновение к удаленному местоположению.

Мне жаль, что я не силен в английском.


person noprops    schedule 06.03.2013    source источник


Ответы (1)


Я решил проблему, изменив метод -(CCMenuItem *) itemForTouch: (UITouch *) touch в CCMenu.m.

-(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 получил неправильные координаты.

Я имел в виду этот вопрос.

person noprops    schedule 07.03.2013