我写过这个游戏。它在运行程序时立即启动。一切都在一个文档类中工作。现在,我想做一些基本的介绍,例如,在游戏开始前的动画倒计时。我怎么能暂停游戏?主时间轴上只有一个框架包含背景。
答案 0 :(得分:4)
如果您的动画基于计时器。
启动计时器时:
timer.start();
last_time = getTimer();
暂停计时器时:
timer.stop();
pause_timer = getTimer() - last_time;
恢复计时器时:
last_time = getTimer();
timer.start();
希望,它会帮助你。
答案 1 :(得分:2)
要添加到Antony上面的答案,如果您使用事件侦听器来处理游戏循环操作,您可以简单地删除它们以暂停游戏,然后再次添加它们以重新启动它。例如:
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