2015-11-06 2 views
0

Я реализовал масштабирование путем масштабирования корневого «мирового» узла, содержащего все объекты в моей игре. Однако, с меньшим размером мирового узла & детей, применение сил теперь имеет больший эффект.Масштабирование SpriteKit влияет на физику

Даже если я масштабирую силы тем же масштабом, что и мой мировой узел, они все еще огромны и объекты летают.

Я видел некоторые довольно беспокойной решения вокруг:

  • Масштабные сцены (но накладками масштабируются тоже)
  • Создать целый новый невидимый слой, который подчиняется нормальному физику, то видимый слой поверх который вы масштабируете ...

Есть ли более простой подход к тому, чтобы как-то просто масштабировать мир физики с помощью мирового узла?

ответ

0

Да, не следует шкала для увеличения. Попробуйте вместо этого изменить размер.

myScene.scaleMode = SKSceneScaleModeAspectFill;

И то при масштабировании:

myScene.size = CGSizeMake(myScene.size.width + dx, myScene.size.height + dy);

* Apple Documentation says:

Установите свойство ScaleMode в SKSceneScaleModeResizeFill. Sprite Kit автоматически изменяет размер сцены так, чтобы она всегда соответствовала размеру вида.

+0

Я изменил метод зажима на масштабирование, но по-прежнему кажется, что физика масштабируется. Для двух шкал я получаю очень разные скорости, когда сила применяется к SKNode. Эффект меньше, чем со шкалой, но все еще очевидно. У вас есть идея, почему это может быть? – kaifresh

+0

Вы имеете в виду, что вы изменили свой метод на RESIZING? Потому что вы должны избегать масштабирования. Изменение размера не должно влиять на физический мир так, как вы описали – JKallio

+0

Извините, да, изменяя размер – kaifresh

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