Je suis curieux quant à la méthode « appropriée » pour atteindre les fonctionnalités suivantes à l'aide Quarts2D:iPhone Quartz2D rendent l'expansion cercle
Je veux avoir une vue et d'être en mesure d'ajouter un cercle à tout coordonner. Dès que j'ajoute le cercle, il devrait s'étendre à un rythme prédéfini; Je voudrais aussi répéter ce processus et avoir un numéro si ces cercles en expansion.
Think Missile Command:
En général, si j'écris en C++ en utilisant SDL ou une autre bibliothèque graphique je voudrais:
ont une classe pour représenter un 'cercle de plus en plus' Avoir un vecteur/tableau pour contenir des pointeurs vers tous les 'cercles en croissance' que je crée.
Tous les diamètres de cercles seraient augmentés à chaque tick, et dans mon renderloop je voudrais itérer la liste et dessiner les cercles appropriés à mon tampon. Cependant, cela ne semble pas bien cadrer avec la façon dont j'ai généralement utilisé les vues dans le développement de l'iPhone précédent.
Donc je suppose que c'est un peu ouvert, mais y a-t-il un moyen correct pour quelque chose comme ça? Serait-ce dans un style de boucle de jeu (comme décrit ci-dessus), ou devrais-je sous-classer UIView
pour un objet 'cercle', et remplacer drawRect
? Je suppose que je devrais alors ajouter chaque cercle en créant une vue et en l'ajoutant à ma vue principale?
La recherche initiale m'a également amené à faire référence à la classe CAShapeLayer, même si je suppose que cela pourrait être la même chose que d'implémenter la technique de sous-classement UIView.
solution Nice, j'aime l'effet :-) Ce ne serait pas trop utile si Je voulais cependant interroger l'état d'un cercle particulier? Bien que je suppose que je pourrais garder une référence à tous les calques existants et les utiliser pour interroger des choses comme les dimensions de la couche (devrais-je gérer les collisions, par exemple) – davbryn
Ouais, il y a beaucoup de façons d'habiller ce chat. Jetez un coup d'œil à la méthode 'hitTest:' de CALayer. Il utilise par défaut les limites rectangulaires de la couche, mais vous pouvez sous-classer CAShapeLayer pour votre cercle en expansion et fournir une implémentation hitTest qui est intelligente en matière de transparence/géométrie. –
Brillant, merci! – davbryn