Collision CaLayer
Bonjour à tous,
Je viens vers vous car je suis bloqué pour la collision des CALayer.
Pour l'instant la collision fonctionne, j'utilise cgrectintersectsrect pour détecter la collision des layer.frame.
Le problème est que mes layers ne contiennent pas un contenu rectangle, mais un png avec le contour transparent. Ce qui veut dire que la détection de collision est fausse par rapport à l'affichage.
J'ai donc pensé à utiliser cgrectintersect pour récupérer les valeurs contenues, et ainsi savoir si l'un des pixels contenus dans l'intersection est d'une couleur différente que "transparent" ==> Très complexe à mettre en place...
Ma question est donc, connaissez vous une autre méthode de collision qui fonctionne selon la forme de l'image ?
Pour information, j'utilise les layers pour permettre des animations. Les Sprites peuvent être une solution, mais je ne connais pas du tout le fonctionnement...
Merci de votre aide
Charlie.
Réponses
Merci pour ta réponse.
Je n'ai jamais utilisé cette classe, mais d'après ce que j'ai compris tu me suggères de dessiner mes layers via UIBesierPath ?
Je te conseille de te tourner vers Sprite Kit.
En effet, je ne pense pas vraiment avoir le choix...
C'est dommage, l'app est pratiquement terminée avec de nombreuses animations. Seule la précision pour détecter collision est manquante.
Petite question avant de tout détruire mon code : Est-ce que les CAlayer et Sprite peuvent cohabiter ? Ou bien faut-il que je reprenne tout (je n'ai jamais utilisé Sprite Kit) ?
Si vraiment, ce ne sont que quelques animations, peut-être peux-tu approximer les contours des sprites avec des rectangles ? Au lieu d'avoir une grosse CALayer, tu en aurais plusieurs petites.
et
https://developer.apple.com/library/ios/documentation/uikit/reference/UICollisionBehavior_Class/index.html#//apple_ref/occ/instm/UICollisionBehavior/addBoundaryWithIdentifier:forPath:
Aucun problème, et merci pour vos retours !
Donc j'ai bien le choix, UICollisionBehavior ou bien Sprite Kit...
Je vais étudier les 2 solutions, mais question performance (comme il s'agit d'un mini jeu) mieux vos utiliser Sprite Kit ?
Dommage pour moi, je pensai vraiment que coreanimation aurait fait l'affaire...
Comme je n'ai pas de délais à tenir, je pense m'orienter vers SpriteKit...
Merci à tous pour votre aide !