Можете ли вы добавить SKPhysicsBody только к одной стороне узла Rect angular? - PullRequest
0 голосов
/ 25 февраля 2020

Итак, допустим, у меня есть этот прямоугольник angular SKNode. Могу ли я добавить SKPhysicsBody только к одной стороне прямоугольника, то есть только к верхней стороне, чтобы только столкновение могло обнаруживать столкновение, а не к другим сторонам (тогда синяя линия индикатора физики будет отображаться только сверху, а не где-либо еще)?

Я хотел создать игру, но я не знаю, может ли что-то подобное сработать.

Так что, если бы я мог, как?

Если я не могу , есть ли способ обойти эту проблему?

Я хотел добавить нормальный прямоугольник с физическим телом только на одной стороне.

См. изображение прямоугольника здесь, синяя часть - это место, где я хочу the PhysicsBody

image

Итак, я попытался добавить ребро-основанную физическую базу, но, похоже, она не работает (либо физика не была создана или он находится в неправильном положении).

let rectangle = SKSpriteNode(imageNamed: "Rectangle")
rectangle.size = CGSize(width: 128, height: 128)
rectangle.position = CGPoint(x: frame.midX, y: frame.midY)
rectangle.physicsBody = SKPhysicsBody(edgeFrom: CGPoint(x: rectangle.position.x - rectangle.size.width/2, y: rectangle.position.y + rectangle.size.width/2), to: CGPoint(x: rectangle.position.x + rectangle.size.width/2, y: rectangle.position.y + rectangle.size.width/2))
rectangle.physicsBody!.restitution = 0.0
rectangle.physicsBody!.categoryBitMask = physicsCategories.groundCategory
rectangle.physicsBody!.collisionBitMask = physicsCategories.squareCategory
addChild(rectangle)

Спасибо!

1 Ответ

0 голосов
/ 25 февраля 2020

Можно, но он также обнаружил бы столкновение, исходящее с «неправильной» стороны, то есть с объектом, который прошел через узел.

Физические тела могут быть основаны на объеме или ребре, но даже основанное на ребре тело толщиной всего в один пиксель по-прежнему имеет 4 стороны.

Если бы вы могли точно указать рисунок что вы хотите, мы могли бы помочь лучше, так как, возможно, есть несколько разных подходов.

...