Игрок заикается во время движения - Sprite Kit - PullRequest
0 голосов
/ 08 июня 2018

Мой игрок SKSpriteNode.Я перемещаю это с CGVectors и player.physicsBody!.applyImpulse().Это работает нормально, но, когда мой игрок движется, он, похоже, заикается влево и вправо.Чтобы исправить это, я попытался изменить некоторые из свойств physicsBody.В функцию update я добавил эту строку кода: player.physicsBody?.friction = 0.Это все еще ничего не изменило.Поэтому я подумал, что это заикание было вызвано тем, что игрок касался земли.Поэтому я добавил новую строку кода в функцию обновления: player.position.y += 1.Конечно, из-за характера этого решения игрок теперь заикался вверх и вниз, но мог без проблем перемещаться влево и вправо.Это показывает мне, что проблема в некотором типе силы, когда игрок касается земли.Как я могу остановить заикание игрока?

Редактировать: Я думаю, что было бы полезно также знать, что моя «земля» на самом деле представляет собой кучу SKSpriteNode, расположенных рядом друг с другом, чтобы сделать этовыглядеть как карта тайлов.

Редактировать: Физика тела моего игрока была настроена с использованием этой строки кода: player.physicsBody = SKPhysicsBody(rectangleOf: player.size)

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Я нашел решение для заикания, и оно должно было просто изменить эту строку кода: player.physicsBody = SKPhysicsBody(rectangleOf: player.size) на круг.Установив физическое тело в виде круга, все заикания исчезли, но теперь я не могу получить эффект от того, что мой игрок стоит на земле.

0 голосов
/ 08 июня 2018

Возможно, вы используете слишком много спритенодов, попробуйте использовать SKTileMapNode.Поможет вам резко с точки зрения производительности.На youtube и raywenderlich есть учебники по их использованию.Просто посмотрите, и вы увидите, что использовать

довольно просто
...