2009-05-19 8 views

Répondre

0

Vous avez besoin de surfaces tactiles trop invisibles sur le dessus du jeu en utilisant les classes UIKit standard.

Ensuite, vous détectez et interprétez les touches à travers ces objets et passez les contrôles à votre jeu.

Si vous rencontrez un problème plus spécifique, vous pouvez fournir plus d'informations ou poser une autre question.

2

Vous implémentez les ccTouchesBegan/méthodes terminées/DEPLACE dans votre classe de couche, puis vérifiez l'emplacement de contact contre la conteneur des nœuds que vous souhaitez détecter touche.

Par exemple:

-(BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch touch = [touches anyObject]; 
    CGPoint location = [[Director sharedDirector] convertCoordinate: [touch locationInView: [touch view]]]; 

    CGRect mySurface = CGRectMake(100, 100, 50, 50); 
    if(CGRectContainsPoint(mySurface)) { 
    // do something 
    return kEventHandled; 
    } 
    return kEventIgnored; 
} 

Maintenant, ce tout changement de Cocos2D 0,8 (qui est en bêta actif maintenant) à l'aide de «tactiles délégués et exemples peuvent être vus dans le « Touches test »(qui apparaît être un jeu de pong de la source que je viens de regarder). Je ne sais pas pourquoi Corey a dit d'utiliser les contrôles UIKit pour détecter les contacts, puisque Cocos2D a sa propre façon de les gérer.

Seuls les calques peuvent recevoir des touches - il n'est pas conseillé d'utiliser un calque pour chaque 'objet de jeu' touchable (par exemple, les joueurs et les objets) ...