Réponse : Jonas
(Meilleure réponse)
Dans le calque contenant les sprites, vous devez saisir :
self.isTouchEnabled = YES;
Ensuite, vous pouvez utiliser le même événement dans l'UIView, mais la méthode qui les appelle est différente :
- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch* touch = [touches anyObject];
//in your touchesEnded event, you would want to see if you touched
//down and then up inside the same place, and do your logic there.
}
Réponse : Térence
Pour obtenir cet effet, vous pouvez définir un cadre de délimitation pour les sprites. Dans le code suivant, je place tous les sprites dans NSMutableArray et vérifie s'ils se trouvent dans le cadre de délimitation. En même temps, je m'assure que le toucher a été initialisé. .Opération :
Vous devrez peut-être ajuster la position x/y pour garantir la « position centrale » du sprite.
Réponse : Jean
Le code de David provoquera des messages d'erreur sur Cocos 0.7.3 et 2.2.1, j'ai donc utilisé CGRectMake au lieu de CGMakeRect, et utilisé [touch locationInView:touch.view] pour corriger l'erreur [touch location] :
Réponse : Jonas
(Meilleure réponse)
Dans le calque contenant les sprites, vous devez saisir :
Ensuite, vous pouvez utiliser le même événement dans l'UIView, mais la méthode qui les appelle est différente :
Réponse : Térence
Pour obtenir cet effet, vous pouvez définir un cadre de délimitation pour les sprites. Dans le code suivant, je place tous les sprites dans NSMutableArray et vérifie s'ils se trouvent dans le cadre de délimitation. En même temps, je m'assure que le toucher a été initialisé. .Opération :
Réponse : David Higgins
Sur la base de la réponse de Jonas, j'ai apporté d'autres améliorations :
Vous devrez peut-être ajuster la position x/y pour garantir la « position centrale » du sprite.
Réponse : Jean
Le code de David provoquera des messages d'erreur sur Cocos 0.7.3 et 2.2.1, j'ai donc utilisé CGRectMake au lieu de CGMakeRect, et utilisé [touch locationInView:touch.view] pour corriger l'erreur [touch location] :