0

だから私はこの機能を持っています。レーズンクッキーがプレート上にあるかどうかを計算し(私はすでにすべての変数を正しく宣言しています)、動的テキストにカロリー数を表示させることになっています。クッキーがプレートの外にあるとき、カロリーカウントはクッキーのカロリーカウントを差し引く必要があります(他のクッキーもあるのでリセットしないでください)。raisinOnceは、Cookieがプレートに少なくとも1回追加される前に、カロリーが差し引かれないように保護するブール値です。

function caloriesf(e:Event)
{
    calories.text="only "+String(caloriesv)+" calories!";
    if (((raisin.x > plateminx && raisin.x < platemaxx)&& (raisin.y > plateminy && raisin.y < platemaxx))&& raisinInPlate==false)
    {
        raisinOnce=true;
        caloriesv+=50;
        raisinInPlate=true;
        return;
    }
    else if (((raisin.x < plateminx && raisin.x > platemaxx)&&(raisin.y < plateminy && raisin.y > platemaxx)) && raisinOnce==true)
    {
        raisinInPlate=false;
        caloriesv-=50;
    }
}

これで、Cookieがプレートに追加されたときは正しく機能しますが、削除されたときは機能しません。ここで何が問題になっていますか?

4

1 に答える 1

0

私はそれを考え出した。問題は、elseがステートメントを必要とせず、Onceブール値を使用する必要がなかったことです...次のように修正されたコード(動作)

function caloriesf(e:Event)
{
    calories.text="only "+String(caloriesv)+" calories!";
    if ((raisin.x > plateminx && raisin.x < platemaxx)&& (raisin.y > plateminy && raisin.y < platemaxy))
    {
        if (raisinInPlate==false)
        {
            caloriesv+=50;
            raisinInPlate=true;
        }
    }
    else
    {
        if (raisinInPlate==true)
        {
            raisinInPlate=false;
            caloriesv-=50;
        }
    }
}
于 2012-11-08T02:24:50.683 に答える