Я пытаюсь создать физическое тело для узла спрайта, который предназначен только для контура спрайт-узла. Для этого я попытался использовать edgeLoopFromRect. Однако, когда я пытаюсь это сделать, физическое тело не соответствует позиции узла спрайта. Например, узел спрайта будет находиться в центре экрана, и его физическое тело будет находиться в верхнем углу экрана (см. Рис., Схема физического тела показывает только угол, так как некоторые находятся за пределами экрана). Я хочу использовать это, чтобы создать схему игровой области, которая будет действовать как пограничник для объекта, с которым можно связаться для игры.Swift, SpriteKit: положение физического тела неправильно для SpriteNode при использовании edgeLoopFromRect
Вот мой код:
//Physic Body Outline Test
let screenS = SKSpriteNode(imageNamed: "TestImage")
screenS.size = CGSize(width: 100, height: 100)
screenS.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
screenS.physicsBody = SKPhysicsBody(edgeLoopFrom: screenS.frame)
screenS.physicsBody!.affectedByGravity = false
self.addChild(screenS)
Почему позиция так далеко? Что я делаю не так? Это даже правильный подход к созданию плана физического тела для игровой зоны?
Спасибо! : D
Можете ли вы опубликовать скриншот, показывающий спрайт и физику? –
«Я хочу использовать это, чтобы создать схему игровой области, которая будет действовать как граница для объекта, с которым можно связаться» - вы хотите, чтобы контур спрайта был границей для спрайта, с которым можно связаться? Спринты обычно имеют физиологические тела объемной базы; основанные на краю тела используются для границ и т. д., но вы обычно используете рамку сцены, чтобы остановить спрайт, выходящий из экрана. –