2015-05-14 3 views
0

У меня есть физическое тело, которому требуется шкала y, равная 0,2. Я использовал свойство rectangleOfSize для определения своего физического тела, но не знаю, как изменить его масштаб. Я изменил масштаб y ранее в коде и хотел бы знать, есть ли более простой способ сделать это, кроме как пойти в Photoshop и создать новое изображение. Я приведу пример кода, если кому-то понадобится. Благодаря!Как я могу масштабировать свое физическое тело?

+1

Я немного запутался, почему вы должны использовать Photoshop при работе с физическим телом (вы упомянули, используя 'rectangleOfSize' метод) Вы имеете в виду масштабирование текстуры sprite? Или масштабирование текстуры спрайта и физического тела? Или я неправильно понимаю вопрос? – ABakerSmith

+0

Я уже масштабировал текстуру ранее в коде, так что просто физическое тело. Когда я тестирую приложение, физическое тело имеет первоначальные размеры текстуры перед масштабированием. –

ответ

0

Да, есть более простой способ! Рекомендую посмотреть на SKAction. SKAction содержит методы класса:

+ (SKAction *)scaleBy:(CGFloat)scale duration:(NSTimeInterval)sec; 
+ (SKAction *)scaleXBy:(CGFloat)xScale y:(CGFloat)yScale duration:(NSTimeInterval)sec; 
1

К сожалению, масштабирование physicsBody в Spritekit может вызвать столкновения, чтобы прослушиваться, я рекомендовал бы создать новую physicsBody и назначить его на узел вместо этого.

Как изменить yScale узла, вы можете просто вызвать эту функцию

node.yScale = yourValue 
+0

Как я могу присвоить SKSpriteNode физическому устройству? –

+0

Попробуйте установить физический блок на ноль, а затем инициализируйте новый физический элемент. Если это не сработает, вам, вероятно, придется создать новый узел с новым физическим блоком и удалить старый узел. – Wraithseeker

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