0

このゲームでは、いくつかの立方体を落下させましたが、それらを避ける必要があります。1体回避すると落下し続けて地面に当たる(scoreDetector)ので、地面に当たるたびに1点もらえる。問題は、キューブのアニメーションがループし続けることです (それが私が望んでいることです) が、そうすることで、スコア カウンターがポイントを削除し、キューブのアニメーションが開始するたびにポイントを追加および削除し続けます。

コード:

var time:int;
var timer:Timer = new Timer(1000,0);
var score:int = 0;

score = 0;
scoreCounter.text = "Score:  " + score;

timer.addEventListener(TimerEvent.TIMER, cubeFall);

timer.start();

function cubeFall(t:TimerEvent) {

time++;

if (time == 3) {
    cube_1.play();
} else if (time == 10) {
    cube_2.play();
}

// Add Score

else if (cube_1.hitTestObject(scoreDetector)) {
score++;
scoreCounter.text = "Score:  " + score;
}
}
4

2 に答える 2

1

こんにちは、ヒットした要素を含む配列を次のように使用できます。

var time:int;
var timer:Timer = new Timer(1000,0);
var score:int = 0;
var hittedObjects:Array = new Array();
score = 0;
scoreCounter.text = "Score:  " + score;

timer.addEventListener(TimerEvent.TIMER, cubeFall);

timer.start();

function cubeFall(t:TimerEvent) {

time++;

if (time == 3) {
    cube_1.play();
} else if (time == 10) {
    cube_2.play();
}

// Add Score

else if (cube_1.hitTestObject(scoreDetector) && hittedObjects.indexOf(cube_1)>0) {
score++;
scoreCounter.text = "Score:  " + score;
hittedObjects.push(cube_1);
}
}
于 2012-06-03T11:55:14.480 に答える