2013-11-29 2 views
2

У меня есть следующий код, который создает SKShapeNode (self.tiles).Как выровнять SKPhysicsBody и SKShapeNode?

CGMutablePathRef path = CGPathCreateMutable(); 
.... //Some stuff that creates a path 

self.tiles = [SKShapeNode node]; 
[self addChild:self.tiles]; 

self.tiles.path = path; 
self.tiles.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:path]; 

Но мне кажется, что физика тела, которая создается не совпадает с формой, которая создается на screen.The SKShapeNode именно там, где я хочу его на экране (визуально).

Я понятия не имею, где находятся физические тела.

Как я могу выровнять SKShapeNode и SKPhysicsBody?

+0

- это точки пути относительные или абсолютные? – LearnCocos2D

+0

Предположите, что они абсолютные. –

+0

для формы и формы тела они должны быть относительными (т.е. в координатном пространстве узлов) – LearnCocos2D

ответ

2

Это для других людей, которые могут возникнуть проблемы с пониманием:

узловая точка спрайта, где начинается локальная система координат детей этого спрайта. Поэтому, если опорная точка является центром спрайта, то (0,0) дочерних узлов соответствует центру родительского спрайта.

В случае CGRect вы обычно указываете начало координат CGRect (как нижний левый угол прямоугольника), а затем указываете размеры.

Так как вы можете быть создание SKShapeNode или SKPhysicsBody эллипса или прямоугольника с помощью CGRect, вы должны компенсировать это, поэтому в центре прямоугольника совпадает с центром спрайта, так что форма и тело физика в ожидаемом положении ,

+0

Если у меня только есть SKShapeNode и вы хотите повернуть вокруг его центра, как я могу это сделать? –

+0

Не знаю. Я прекратил использовать SpriteKit. Возможно, вам следует открыть новый вопрос с более подробной информацией, в том числе о том, что вы пробовали делать. –

+0

Но я думаю, вам просто нужно изменить какой-либо атрибут, обозначенный вращением или углом, или что-то в этом роде. Это кажется очень простой мыслью. –

Смежные вопросы