1

敵を倒したときの反応時間が表示され、後の計算に使用されるゲームを作成しています。数値は、有効数字 3 桁の正確な秒単位である必要があります。したがって、タイマーの現在の値を数値に変換する必要があります。

敵がスポーンし、タイマー (reactionTimer) イベントが開始され、敵が殺されると、変数 (reactionTime) が反応タイマーに設定されるようにしています。

その後、新しいものが生成され、タイマーと変数がリセットされます。

何度か試してみましたが、常にタイマーの値が「オブジェクトタイマー」または0として表示されます。

私も使ってみましcurrentCountたが、これは10進数を与えず、奇妙に動作します。

4

1 に答える 1

3

新しい ActionScript 開発者は、多くの場合、TimerクラスTimerEvent. 時間を測定するためではなく、特定の時間にアクションをトリガーするためのものです。

時間を測定するには、getTimer関数を使用します。これを呼び出すたびに、Flash Player が開始してから経過したミリ秒数が返されます。経過時間を測定するには、getTimer()2 回呼び出して、最初の測定値を 2 番目の測定値から引きます。

特定の状況を整理する方法はたくさんあります。1 つは、敵のスポーン タイムスタンプを敵のクラスに保存し、コンストラクターでキャプチャすることです。

public class Enemy extends MovieClip {
    public function get spawnTime():int { return _spawnTime; }
    private var _spawnTime:int;

    // Constructor
    public function Enemy() {
        super();
        _spawnTime = getTimer();
    }
}

次に、敵が殺されたら、getTimer()再度呼び出して反応時間を取得します。

// Somewhere, where you are processing the enemy killed event
var killTime:int = getTimer();
var reactionTime:int = killTime - killedEnemy.spawnTime; // in whole ms
var reactionSeconds:Number = reactionTime / 1000;        // in seconds
于 2012-09-19T13:08:26.610 に答える