В начале моей сцены я запускаю кучу разных действий как своего рода введение в уровень. Я хотел бы сделать его доступным для пользователя. Есть ли способ справиться с этим с помощью SKAction? SKAction - моя ставка, но, возможно, есть лучший способ сделать это. Есть идеи?Пропуск SKActions
ответ
Это предполагает, что вы хотите нажать, чтобы остановить действия:
очень легко, но, возможно, неустойчив подход был бы просто провернуть скорость узла действие выполняется на безумно большое количество, только не забудьте сбросить если вам нужен узел.
Простой подход, который является более стабильным, состоял бы в том, чтобы сохранить ваши действия и повторно применить их с длительностью нуля.
Лучший способ сделать это, чтобы создать Dictionary
для SKAction
с так:
var actionDict = [String,SKAction]()
Тогда просто сохранить все ваши действия с ключами, так что вы можете получить доступ к нему в будущем:
actionDict["moveUp"] = SKAction.moveToY(100,duration:100)
Теперь, когда у вас есть ключи для этого, при выполнении ваших действий, просто присвоить тот же ключ:
node.runAction(actionDict["moveUp"],withKey:"moveUp")
Затем, когда вам нужно, чтобы закончить его, просто удалить нужные действия:
node.removeActionForKey("moveUp")
И повторно с длительностью 0:
//if we want to retain the old duration, use copy
let action = actionDict["moveUp"].copy()
action.duration = 0
node.runAction(action,withKey:"moveUp")
Примечание, этот метод работает только тогда, когда действие делает Для события, если он выполняет событие By, вам нужно выяснить конечную точку назначения и сделать его moveTo a с продолжительностью 0
- 1. Рандомизация SKActions
- 2. SKActions in Sprite Kit
- 3. Как создать пользовательские SKActions?
- 4. Правильно обнаружить завершение одновременных SKActions
- 5. Swift: Проверка прогресса на SKActions
- 6. Изменить SKActions во время игры
- 7. Есть ли способ приостановить SKActions?
- 8. Sprite Kit SKActions не срабатывает
- 9. Завершение работы: после последовательности или группы SKActions
- 10. Вложение SKActions, не использующее длительность ожидания
- 11. Использование SpriteKit без физики или SKActions
- 12. Swift SpriteKit: Запуск двух SKActions навсегда отдельно
- 13. Сброс и изменение скорости на SKActions
- 14. Как создать массив SKActions в Spritekit
- 15. Синхронизация SKActions на двух или более SKSpriteNode?
- 16. Бесконечное действие с SKActions Цель C
- 17. Повторно запускать два SKActions в последовательности?
- 18. Выполнение последовательности SKActions с различными узлами
- 19. Как периодически вносить изменения в SKActions?
- 20. Пропуск Месяцев
- 21. Пропуск столбцов
- 22. Пропуск параметра
- 23. Пропуск сканера?
- 24. Пропуск столбца в FileHelper
- 25. Пропуск итераций в Python
- 26. Java Пропуск последней вариации
- 27. Пропуск «За цикл»?
- 28. Пропуск элементов контроллера просмотра
- 29. Пропуск по Java KeyEvents
- 30. Python3 Пропуск проверки потока
skippable ... Если вы имеете в виду на экране на экране и действие завершается, то вам нужно помнить, что такое действия, а на прикосновении просто убить всех t и повторить их с длительностью 0 (или просто вручную установить любое событие), если вы хотите просто остановить все действия, то вы можете просто удалить их. Лучший способ сделать это, дать свои клавиши действий и называть 'removeActionForKey' Не уверен, что есть что-то еще, поэтому я не сделал этого ответа. – Knight0fDragon
Это гениальность ... Я никогда не думал о запуске их с длительностью 0. Сделайте ответ, и я соглашусь. Спасибо приятель! – 02fentym