Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Xavier
in god we trust
 Аватар для Xavier
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
06.08.2014, 23:21     SKPhysicsBody.anchorPoint #1
Добрый день!
У меня возникла проблема с 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.
Миниатюры
SKPhysicsBody.anchorPoint  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rovnyart
1 / 1 / 1
Регистрация: 20.08.2014
Сообщений: 19
20.08.2014, 19:50     SKPhysicsBody.anchorPoint #2
Objective-C
1
anchorPoint = CGPointMake(0.5, 0.5)
это не центр экрана)))
Xavier
in god we trust
 Аватар для Xavier
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
20.08.2014, 19:59  [ТС]     SKPhysicsBody.anchorPoint #3
Цитата Сообщение от rovnyart Посмотреть сообщение
это не центр экрана)))
при установке acnhorPoint (1,1) значит правый верхний угол SKNode, (0,0) левый нижний SKNode, следовательно (.5,.5) - центр SKNode. Т.е. указываются не реальные координаты, а точка относительно положения самого SKNode.
Yandex
Объявления
20.08.2014, 19:59     SKPhysicsBody.anchorPoint
Ответ Создать тему
Опции темы

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