Приостановить игру (ActionScript 3) - PullRequest
0 голосов
/ 01 августа 2011

Я написал игру.Запускается сразу при запуске программы.ВСЕ работает в одном классе документов.Теперь я хочу сделать некоторое базовое вступление, например, анимированный обратный отсчет перед началом игры.Как я могу сделать паузу в игре?на основной временной шкале есть только один кадр, содержащий фон.

Ответы [ 2 ]

4 голосов
/ 01 августа 2011

Если ваша анимация основана на таймере.

При запуске таймера:

timer.start();
last_time = getTimer();

при паузе таймера:

timer.stop();
pause_timer = getTimer() - last_time;

при возобновлении таймера:

last_time = getTimer();
timer.start();

Надеюсь, это поможет вам.

2 голосов
/ 01 августа 2011

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

package com.mygame.logic{
import flash.display.MovieClip;
import flash.display.Bitmap; 
import fl.controls.Button; //to get this code to work you have to drag a UI component to your 
//movie's library or Flash won't recognize it.
public class mygame extends MovieClip{   //this is to be the main document class for the .fla
private var bmp:Bitmap = new Bitmap(...); //fill in constructor with relevant data
private var myButton:Button = new Button();
private var paused:Boolean = false;
public mygame(){
  bmp.x = 100;
  bmp.y = 100;
  myButton.x = 200;
  myButton.y = 200;
  this.addChild(bmp);
  this.addChild(myButton);
  this.addEventListener(Event.ENTER_FRAME, main);
  myButton.addEventListener(MouseEvent.ON_CLICK, pause);
}
public function main(e:Event):void{
  bmp.x += 1.0;
}
public function pause(e:MouseEvent):void{
  if (!paused){
    this.removeEventListener(Event.ENTER_FRAME, main);
    this.paused = true;
  }
  else{
    this.addEventListener(Event.ENTER_FRAME, main);
    this.paused = false;
  }
}

, и это должно быть сделано для базовой функции паузы.Вы можете расширить вышеперечисленное, чтобы сделать хороший HUD для игрока с красиво названными и цветными кнопками и т. Д. Для приостановки / перезапуска игры, используйте подростки, чтобы сделать переход HUD на экран приятным ...

Надеждаэто помогает, CCJ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...