Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
#1

SKPhysicsBody.anchorPoint - Программирование iOS

06.08.2014, 23:21. Просмотров 551. Ответов 2
Метки нет (Все метки)

Добрый день!
У меня возникла проблема с SKPhysicsBody.
Вот код в инициализации сцены:
Objective-C
1
2
3
4
5
6
7
8
self.anchorPoint=CGPointMake(0.5, 0.5); //self это SCScene
        self.physicsBody=[SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(-self.size.width/2, -self.size.height/2, self.size.width, self.size.height)];
        
        SKSpriteNode *sp =[SKSpriteNode spriteNodeWithColor:[SKColor blueColor] size:CGSizeMake(20, 20)];
        sp.physicsBody=[SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(20, 20)];
        
        sp.position=CGPointMake(100, 100);
        [self addChild:sp];
Так вот проблема в том что если я ставлю anchorPoint для сцены равным CGPointZero то все хорошо работает. Проблема начинается когда я ставлю anchorPoint = CGPointMake(0.5, 0.5), т.е. центр экрана. Тогда physicsBody для sp как бы съезжает, т.е. сам спрайт отрисовывается в одном месте, а тело физическое, которое взаимодействует с другими телами, находится в другом, соответственно получается лабуда. Для наглядности прикрепил скриншот.

Может кто ни будь работал с Sprite kit и сталкивался с такой проблемой? И знает как ее решить?
Если честно у меня такое впечатление что это баг какой-то в самом sprite kit.
0
Миниатюры
SKPhysicsBody.anchorPoint  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rovnyart
1 / 1 / 1
Регистрация: 20.08.2014
Сообщений: 19
20.08.2014, 19:50 #2
Objective-C
1
anchorPoint = CGPointMake(0.5, 0.5)
это не центр экрана)))
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
20.08.2014, 19:59  [ТС] #3
Цитата Сообщение от rovnyart Посмотреть сообщение
это не центр экрана)))
при установке acnhorPoint (1,1) значит правый верхний угол SKNode, (0,0) левый нижний SKNode, следовательно (.5,.5) - центр SKNode. Т.е. указываются не реальные координаты, а точка относительно положения самого SKNode.
0
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru