2014-05-10 1 views
2

J'ai des icônes qui sont des enfants du noeud "plateau", qui est un enfant de "soi" (la scène). J'ai aussi des décorations qui sont des enfants de noeud "véhicule", qui est aussi un enfant de "soi". Lorsqu'une icône est déplacée de l'étagère et sur le véhicule, le nœud d'icône est retiré et un nœud de décoration est créé à sa place, qui est fait enfant de «véhicule» au lieu de «étagère». C'est un problème: lorsque le nœud de décoration est engendré, il saute loin dans la scène car les systèmes de coordonnées de «plateau» et de «véhicule» sont incongrus.iOS - Conversion de point d'un système de coordonnées à un autre

Comment puis-je convertir le nouveau nœud de décoration de sa position dans le nœud «étagère» à sa nouvelle position dans «véhicule» afin qu'il ne saute pas?

(je peux code postal si vous en avez besoin, mais ce sera très long et désordonné.)

+0

que vous voulez convertir d'un système de coordonnées à l'autre ou les coordonnées d'un point de vue, en termes d'un autre point de vue? de toute façon, avez-vous essayé cela? http://stackoverflow.com/questions/15109958/understanding-convertpointtoview –

+0

umm Je ne suis pas sûr. Je vais devoir regarder dans les vues. Je veux convertir les coordonnées d'un nœud dans le système de coordonnées de son parent en un autre système de coordonnées d'un nœud différent. Cela a-t-il du sens? : S – 13rave

+0

Les deux systèmes de coordonnées 0,0 commencent-ils en haut à gauche? –

Répondre

2

En supposant que vous utilisez Kit Sprite, vous pouvez utiliser la méthode SKNode convertPoint:toNode: pour convertir les points entre les systèmes de coordonnées.

Ainsi, par exemple, dès que glisser extrémités sur le dessus du vehicleNode:

CGPoint iconPos = iconNode.position; // this is position on shelf node 
iconPos = [shelfNode convertPoint:iconPos toNode:vehicleNode]; 

// ... remove iconNode from shelfNode 
// ... make new decorationNode 

decorationNode.position = iconPos; // this is now position on vehicle node 

// ... add decorationNode to vehicleNode 
+1

Je suppose que vous parlez de SceneKit? Vous devriez probablement dire que dans le sujet de votre question –

+0

j'ai essayé cela plus tôt ... ça ne fonctionne pas. Je ne suis pas sûr de ce que je fais mal! – 13rave

+0

Lorsque j'imprimer la position avant et après sa conversion, c'est imprimé: Première {81,779503, 63,055557} Deuxième {81,779503, 63,055557} – 13rave

Questions connexes