每个事件运行一次循环

时间:2014-08-22 11:00:39

标签: objective-c loops

如何为每个事件运行一次循环?请考虑以下代码:

-(void)didloadFromCCB {
    BOOL add = YES;
    if (bought_coins && add)
    {
        coins = coins + 5;
        add = NO;
    }
}

此代码的问题在于,在玩家购买硬币后,每次游戏重新开始时,硬币都会添加到玩家手中。我希望只有当玩家每次购买硬币而不是每次从CCB加载游戏时才添加硬币。我该如何更改代码才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

您需要将add设为静态变量,以便在调用didLoadFromCCB时其值仍然存在:

-(void)didloadFromCCB {
    static BOOL add = TRUE;
//  ^^^^^^
    if (bought_coins && add)
    {
        coins = coins + 5;
        add = FALSE;
    }
}

如果您需要随后重置add(例如,当再次购买硬币时),那么您可以将其移出该功能,例如

static BOOL add = TRUE;

-(void)didloadFromCCB {
    if (bought_coins && add)
    {
        coins = coins + 5;
        add = FALSE;
    }
}