Не могу обнаружить UItouch - PullRequest
0 голосов
/ 31 марта 2012

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

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 Ответ

1 голос
/ 01 апреля 2012

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

...