Враг SpriteKit должен двигаться вбок - PullRequest
0 голосов
/ 11 сентября 2018

Где враги движутся со всех сторон на экран. Падающих врагов было легко сделать с помощью гравитации.

Но как я могу заставить врага двигаться вдоль оси х или вниз по экрану к вершине?

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Вы можете использовать SKAction для этого:

let moveAction = SKAction.moveBy(x: 100, y: 100, duration: 2)
entity.run(moveAction)

Это переместит ваш узел вверх и вправо.

0 голосов
/ 13 сентября 2018

Если вы действительно хотите перемещать объекты через гравитацию, вы можете использовать Linear Gravity SKFieldNode https://developer.apple.com/documentation/spritekit/skfieldnode

Путем создания «вертикального» поля линейной гравитации и «горизонтального» узла линейного поля и правильного использованияfieldBitMask, некоторые объекты могут падать вертикально, так как на них воздействует вертикальное гравитационное поле, а другие объекты падают горизонтально из-за горизонтального гравитационного поля.

0 голосов
/ 11 сентября 2018

Тогда вам может не понадобиться гравитация, отключите affectedByGravity на всех ваших вражеских узлах, затем используйте SKAction SKAction.moveBy(x:y:duration:), чтобы враги двигались в определенном направлении

...