Если я правильно понимаю, когда вы умрете, вы захотите перезапустить уровень. Чтобы сделать это, вы можете сохранить все свои исходные переменные, такие как положение игрока, положение на полу и т. Д., В массиве, а затем при смерти восстановить эти переменные в соответствующем объекте. Однако, когда вы усложняетесь и получаете много-много объектов, это может стать хитрым.
Более простое решение состоит в том, чтобы отображать экран смерти некоторых видов на другом кадре (давайте назовем его кадром 3), когда вы ударяете по умирающему объекту, и на этом экране смерти, когда вы нажимаете кнопку перезагрузки или после некоторой задержки, затем он возвращается к кадру 2 и перезапускает уровень.
Пример:
Поместите это в функцию moveThePlayer:
if(dies.hitTestPoint(player_mc.x, player_mc.y, true))
{
// remove all the event listeners
player_mc.removeEventListener(Event.ENTER_FRAME, moveThePlayer);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, PressAKey);
stage.removeEventListener(KeyboardEvent.KEY_UP, ReleaseAKey);
gotoAndStop(3); // this has your "dead" screen on it.
}
А в кадре 3 есть что-то вроде:
import flash.events.MouseEvent;
retry_button.addEventListener(MouseEvent.CLICK, retry);
function retry(e:MouseEvent) {
retry_button.removeEventListener(MouseEvent.CLICK, retry);
// back to the level
gotoAndStop(2);
}
Вы также можете сделать что-то вроде сохранения переменной, к которой вы хотите вернуться, чтобы у вас был один кадр повтора, который может перейти на любой уровень, на котором вы только что находились.