2010-08-12 3 views
0

J'utilise actuellement CGContextMoveToPoint, CGContextAddLineToPoint & CGContextStrokePath pour dessiner des lignes sur une vue.Objectif C - Ligne de recherche 2D Quartz se croisent

Fondamentalement en faisant un jeu de serpent qui permet également à l'utilisateur de se déplacer en diagonale.

Y at-il un moyen de trouver quand 2 lignes que je dessine se croisent ou dois-je calculer manuellement chaque ligne et voir si quelque chose se croise?

Merci,
T

Répondre

0

Étant donné que les méthodes de CG sont un peu lourd CPU, votre meilleur pari est d'écrire une méthode qui calcule un point d'intersection en utilisant la géométrie de base. Ou utilisez le Sweep Line algorithm, ça ne devrait pas être trop dur.

EDIT: En fait, puisque vous faites un jeu de serpent dans lequel les blocs sont disposés dans une grille, vous pouvez juste marquer certains des blocs comme contenant un serpent/ et si un bloc est sur le point d'être marqué deux fois, alors vous faites ce que vous voulez faire sur l'intersection de la ligne.

Questions connexes