2012-03-31 3 views
0

У меня есть большое изображение (1024, 1496) в качестве фонового изображения моего слоя. Поэтому я начал показывать кнопку изображения. Во время приложения я показываю верхнюю часть изображения и некоторые CCSprites.Не могу обнаружить UItouch

id move = [CCMoveBy actionWithDuration:2 position:ccp(0,-746)]; 
[layer runAction:move]; 

Моя проблема в том, что я не могу обнаружить прикосновение к CCSrites, потому что их положение остается прежним. (20, 1200) и UITouch между (1024,746).

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 

for(UITouch * touch in [event allTouches]){ 

    for (CCSprite *book in books) { 
     CGPoint location = [touch locationInView:touch.view]; 
     location = [[CCDirector sharedDirector] convertToGL:location]; 
     if (CGRectContainsPoint([book boundingBox], location)) 
      NSLog(@"Touch"); 
     else{ 
      NSLog(@"NO Touch");   } 
    } 

}

}

Любая идея, как решить эту проблему ??

ответ

1

Просто преобразуйте прикосновение спрайта к мировым координатам. Вы можете сделать это с помощью собственного метода, вычислив положение экрана на основе масштабирования и размера спрайта или используя методы внутри Cocos для преобразования в мировые координаты. Я, как правило, делаю первое.

Смежные вопросы