Spritekit: применение Angular импульса ко всему окружающему узлу взрывающегося узла - PullRequest
0 голосов
/ 17 марта 2020

Я делаю простую игру в спрайтеките, где экран полон шаров с физическими телами. когда игрок касается мяча, шар взрывается. Я хочу применить angular импульс в точке касания, который унесет sh все окружающие шары, как взрыв в реальном мире. Я пробовал поля, но они не очень хороши, так как все узлы поля физики - это силы, а не импульсы. Я проверил все импульсные методы, но они предназначены только для приложения силы к самому узлу. Я также попробовал это:

self.physicsBody?.applyAngularImpulse(100)

и

self.physicsBody?.applyImpulse(impulse: CGVector, at: CGPoint)

, думая, что это будет применять импульс ко всем дочерним узлам в сцене (все шары являются дочерними по отношению к сцене), но не оказало никакого эффекта .

Я думал, что это будет очень просто, но у меня нет идей.

ценим ваше время. веселит

1 Ответ

0 голосов
/ 17 марта 2020

Этот подход не является имитацией взрыва в реальном мире, но может помочь вам как идея.

enter image description here

Я делаю подобные действия в каждый затронутый узел:

node.run(SKAction.sequence([
    SKAction.fadeOut(withDuration: 0.0),
    SKAction.scale(to: 10, duration: 0.1),
    SKAction.removeFromParent()
]))

Вы можете получить этот пример здесь: https://github.com/Maetschl/SpriteKitExamples/blob/master/BoxWithBalls/BoxWithBalls/GameScene.swift

...