Я пытаюсь добавить physicsBody
в SKShapeNode
, который представляет собой прямоугольник. Я построил свой PhysicsBody
, используя fromEdgesWithLoop
, используя рамку Node
как CGRect
, чтобы ее построить.Рамка SKShapeNode смещена
Использование опции отладки для отображения PhysicsBody
, я вижу, что на самом деле это не сосредоточено на моем спрайте.
Я искал в Интернете, чтобы найти, что я должен использовать это:
scene.scaleMode = .ResizeFill
К сожалению, я перепробовал все scaleMode
с и нет никаких различий.
Я также подтвердил свой размер GameScene
и он соответствует экрану iPad2 (моя цель), 1024x720.
SKShapeNode
является ребенком сцены.
Я попытался установить положение своего узла в центре Scene
перед добавлением PhysicsBody
с его рамкой, но это ничего не изменило. Узел уже был в центре сцены.
myShape.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
myShape.physicsBody = SKPhysicsBody(edgeLoopFromRect: myShape.frame)
проверили ли вы опорная точка вашего прямоугольника спрайта? – Stefan
Похоже, что узел формы не центрирован. Попробуйте использовать один из методов init, например 'SKShapeNode (rectOfSize: size)'. @Stefan 'SKShapeNode' не имеет узловую точку. – 0x141E
Я не уверен, что понимаю, с чем? SKShapeNode помещается в GameScene.sks (редактор), я перетащил ShapeNode и поместил его в сцену. Это помогает мне визуализировать расстояния в редакторе. Я могу правильно протестировать, если прикосновение от touchBegan содержится в моем ShapeNode, но я не могу установить его физический элемент из его фрейма. Моя цель - добавить вокруг нее стену, чтобы узлы не выходили наружу. –