Плохая идея использовать команды для графического интерфейса, в инициализации объектов.
Единственное отличие, между sleep и uisleep это то, что uisleep основан на SystemTime, а sleep, на итерациях каденсеров - симуляторах естественного времени в игре.
sleep может тупо застрять и сделать паузу некорректной, т.к. задержка будет основана на общей производительности системы в игре.
uisleep не застрянет, а четко отсчитав интервал времени, продолжит выполнение.
Для четких пауз в простых скриптах, которые не зависят от окружения, лучше uisleep, а для тяжелых скриптов, использовать булевы переменные, и после этого ставить задержки.
Пример прост:
Предположительный скрипт - персонаж выполняет ряд действий. В идеале весь скрипт должен отработать за 35сек.
При этом через 15 секунд должна быть пауза в 5 секунд, затем вторая часть действий.
Представим, что первые 15 секунд из-за загруженности системы и просадки производительности были выполнены за 20 - т.е. прирост в ~1\4, команда sleep 5; будет выполняться не 5 секунд, а 5+5\4. Тогда как uiSleep отсчитает четкий интервал в 5 сек.
В целом, все зависит от того, какой результат должен быть на экране - плавный и равномерный(если скрипт визуализирует что либо), и пауза должна быть основана на общей скорости скрипта в целом. В другом случае, это технический скрипт, в котором задержка должна быть основана на системном времени, и до визуализации нет никакого дела.
Сообщение отредактировал NoNameUltima: 26 January 2015 - 09:42