2012-03-31 5 views
0

nicht erkennen Ich habe ein großes Bild (1024, 1496) als Hintergrundbild meiner Schicht.So begann ich, den Button des Bildes zu zeigen. In der Zeit der Anwendung zeige ich den oberen Teil des Bildes und einige CCSprites.Kann UItouch

Mein Problem ist, dass ich die Berührung der CCSrites nicht erkennen kann, weil ihre Position die gleiche bleibt. (20, 1200), und das UIT zwischen dem (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");   } 
    } 

}

}

Jede Idee, wie dieses Problem zu lösen ??

Antwort

1

Konvertieren Sie einfach den Sprite Touch in Weltkoordinaten. Sie können dies mit Ihrer eigenen Methode tun, indem Sie die Bildschirmposition auf der Grundlage von Zoom und Sprite-Größe berechnen oder Methoden in Cocos verwenden, um in Weltkoordinaten zu konvertieren. Ich neige dazu, das erstere zu tun.

Verwandte Themen