今作っているゲームで、ユーザーが敵キャラを倒した数に合わせて、敵キャラの出現間隔を変えたくてTimerイベントを使っていました。
ところが、間隔を変えているつもりが全く変わらなくて困っていました。
var enemyInterval:uint =3000;
var enemyIntervalTimer:Timer = new Timer(enemyInterval);
enemyIntervalTimer.addEventListener(TimerEvent.TIMER, incom);
function incom(evt:TimerEvent):void{
//出現させる処理
}
enemyIntervalTimer.start();
function checkGame( ){
switch(true){
case (10 <= hitEnemy && hitEnemy <20):
enemyInterval =2000;
trace("level2");
break;
case (20 <= hitEnemy && hitEnemy <50):
enemyInterval =1000;
trace("level3");
break;
default:
trace("level1");
break;
}
}
最初は、こんな感じにしたり、、、
var enemyInterval:uint =3000;
var enemyIntervalTimer:Timer = new Timer(enemyInterval);
enemyIntervalTimer.addEventListener(TimerEvent.TIMER, incom);
function incom(evt:TimerEvent):void{
//出現させる処理
}
enemyIntervalTimer.start();
function checkGame( ){
switch(true){
case (10 <= hitEnemy && hitEnemy <20):
enemyIntervalTimer =new Timer(2000);
trace("level2");
break;
case (20 <= hitEnemy && hitEnemy <50):
enemyIntervalTimer =new Timer(1000);
trace("level3");
break;
default:
trace("level1");
break;
}
}
こんな感じにしたりしてました。
そこでググったところ、人力検索はてなのQ&Aに載ってました。delayなんてプロパティがあるのを初めて知りました。
var enemyInterval:uint =3000;
var enemyIntervalTimer:Timer = new Timer(enemyInterval);
enemyIntervalTimer.addEventListener(TimerEvent.TIMER, incom);
function incom(evt:TimerEvent):void{
//出現させる処理
}
enemyIntervalTimer.start();
function checkGame( ){
switch(true){
case (10 <= hitEnemy && hitEnemy <20):
enemyIntervalTimer.delay =2000;
trace("level2");
break;
case (20 <= hitEnemy && hitEnemy <50):
enemyIntervalTimer.delay =1000;
trace("level3");
break;
default:
trace("level1");
break;
}
}
delayをTimerオブジェクトに設定しすると、、、

タイマーのインターバルが変更でき、敵の出現間隔がバッチリ変わるようになりました!
こちらが完成したゲームです!
