0

所以我有这个功能。它应该做的是计算葡萄干饼干是否在盘子上(我已经正确声明了所有变量)并有一个动态文本显示卡路里计数。当饼干从盘子里出来时,卡路里计数应该减去饼干的卡路里计数(它不应该重置,因为我还有其他饼干)。raisinOnce 是一个布尔值,可确保在将饼干添加到盘子中至少一次之前不会扣除卡路里。

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 回答