Показать сообщение отдельно
Старый 19.05.2010, 17:17
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 1  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
По умолчанию Поставить игру на паузу в любой момент.

Есть очень ёмкая игра. Внезапно требования к готовой игре изменились и нужно в любой момент поставить на паузу всё происходящее в геймплее. А в игру помимо этого включены 2 немаленькие мини-игры.
То есть нужно остановить всю динамику, все твины, таймауты, интервалы, задержки.
Запаузить все твины не проблема, так как пользуюсь Tweener-ом.
Но проблема с постановкой на паузу setTimeout и setInterval.
Думал, что проще всего заменить эти функции классом, делающим тоже самое, но использующем Timer. Но тут я обнаруживаю, что и Timer нельзя поставить на паузу, а потом возобновить! Как быть?

Нет, есть, конечно решение чтобы Timer считал каждую микросекунду на каждый setTimeout и setInterval, а потом после снятия с паузы пересчитывал количество оставшихся микросекунд до конца. Но это динамичная игра, и, боюсь, с её количествами интервалов и таймаутов проц этого не потянет. Или потянет если сделать один таймер, срабатывающий каждую микросекунду, а назначаемые по задержкам функции, будут плясать от этого одного таймера?

Кратко о реальной задаче: остановить выполнение всего когда в миг, отобразить окошко с предложением выйти или остаться в игре, и по результату обратно возобновить выполение кода.

Или же всё таки имеет смысл обойтись без игровой паузы, из-за сложности/невозможности ActionScript рационально запаузить таймеры?