Если я делаю игру в SpriteKit с большим «миром», и мне нужно, чтобы у пользователя была возможность масштабирования и выключения из SKScene
, как бы я это сделал? Или, чтобы сделать вещи проще, в функции didMoveToView, как я могу представить больше мира на экране устройства пользователя (без использования world.runAction(SKAction.scaleTo(0.5))
или что-то в этом роде)?SpriteKit- Как увеличить масштаб и уменьшить масштаб SKScene?
ответ
Итак, лучшее решение, которое я мог найти, это что-то вроде этого. В функции didMoveToView
создайте SKSpriteNode под названием World и сделайте его любым размером, который вы хотите, чтобы ваш мир был. Затем напишите world.setScale(0.5)
, если вы хотите уменьшить 50%. Однако, если у вас есть узел игрока, который всегда должен быть центрирован на экране, вам нужно добавить следующее к вашей функции update
.
override func update(currentTime: CFTimeInterval) {
world.position.x = -player.position.x * (0.5)
world.position.y = -player.position.y * (0.5)
}
Существует SKCameraNode, который специально создан для этого. SKCameraNode определяет область просмотра в вашей сцене. Вы создаете узел камеры и назначаете его свойству камеры для своей сцены.
let cameraNode = SKCameraNode()
cameraNode.position = CGPoint(x: scene.size.width/2, scene.size.height/2)
scene.addChild(cameraNode)
scene.camera = cameraNode
Затем вы можете создавать действия и выполнять эти действия на камере. Чтобы увеличить масштаб сцены, вы сделаете это.
let zoomInAction = SKAction.scaleTo(0.5, duration: 1)
cameraNode.runAction(zoomInAction)
cameraNode в основном представляет собой квадратный узел в сцене, что я думаю, что имеет пропорции зрения по умолчанию? Потому что нет инициализатора размера. Поэтому, когда вы делаете его меньше, сцена выглядит так, будто он увеличивается. Чтобы уменьшить масштаб, вы делаете действие, которое увеличивает масштаб. В принципе, представьте себе прямоугольник на всей вашей сцене, и все, что находится в прямоугольнике cameraNode, отображается прямо на экране вашего iPhone. Вы также можете добавить действия moveTo и действия последовательности и установить timModes для таких же действий, как если бы это был ваш обычный spriteNode.
Вот WWDC, где парень-яблоко показывает то, что я только что сказал. Бит CameraNode составляет около 3 минут до конца.
Это действительно должен быть принятый ответ –
- 1. Как увеличить масштаб и уменьшить масштаб сцены с помощью actionscript3?
- 2. Как увеличить масштаб и уменьшить масштаб с помощью анимации
- 3. Как увеличить и уменьшить масштаб в GWT
- 4. Как увеличить и уменьшить масштаб CScrollView Surface
- 5. ImageView Увеличить масштаб, уменьшить масштаб бесконечной анимации и onAnimationRepeat issue
- 6. Можно ли увеличить и уменьшить масштаб vim?
- 7. Devexpress winform PDFViewer Увеличить и уменьшить масштаб
- 8. увеличить масштаб, уменьшить масштаб на mkmapview показывает скрытые mkannotations
- 9. как увеличить/уменьшить масштаб в интерактивной карте?
- 10. Как увеличить/уменьшить масштаб в редакторе Matlab?
- 11. Как уменьшить масштаб экрана?
- 12. ZedGraph как определить масштаб или уменьшить масштаб?
- 13. увеличить/уменьшить масштаб в OpenGL ES
- 14. Нужно увеличить/уменьшить масштаб, выражения панорамирования
- 15. График Extjs Уменьшить масштаб
- 16. Увеличить масштаб Уменьшить переход между видами деятельности
- 17. Как увеличить масштаб ScrollPane
- 18. Невозможно увеличить масштаб WebView
- 19. Масштаб SpriteKit при нажатии
- 20. Как увеличить изображение с помощью мыши и уменьшить масштаб мыши?
- 21. Как увеличить и уменьшить масштаб сцены в libgdx Scene2d?
- 22. Как увеличить и уменьшить масштаб, используя пальцы в jQuery mobile.?
- 23. Как увеличить и уменьшить масштаб QGraphicsWidget от кнопки?
- 24. Как увеличить масштаб и уменьшить масштаб в библиотеке программирования игр Allegro 4.4?
- 25. Я хочу увеличить масштаб и уменьшить масштаб в ScrollView. Как это возможно?
- 26. Как увеличить масштаб и уменьшить масштаб с помощью формы типа диапазона с помощью jquery
- 27. Как уменьшить масштаб и увеличить масштаб изображения на перкутальном представлении Просмотр в виде прокрутки
- 28. Уменьшить масштаб эмулятора Android
- 29. Программно уменьшить масштаб веб-страницы
- 30. Highcharts Увеличить масштаб Logarithmic
Что случилось с установкой в мире 'scale' недвижимость? Если вы настроите iOS 9, вы можете добавить [SKCameraNode] (https://developer.apple.com/library/prerelease/ios/documentation/SpriteKit/Reference/SKCameraNode/). – 0x141E