如何为每个事件运行一次循环?请考虑以下代码:
-(void)didloadFromCCB {
BOOL add = YES;
if (bought_coins && add)
{
coins = coins + 5;
add = NO;
}
}
此代码的问题在于,在玩家购买硬币后,每次游戏重新开始时,硬币都会添加到玩家手中。我希望只有当玩家每次购买硬币而不是每次从CCB加载游戏时才添加硬币。我该如何更改代码才能使其正常工作?
答案 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;
}
}