我有两个关于多关卡场景的问题。
不同级别有多个场景。所有这些场景都使用相同的位掩码类别和在其 .h 文件中定义的其他变量。有没有一种方法可以在一个文件中定义位掩码类别和其他变量,而不是在每个关卡场景的 .h 文件中定义?
在关卡场景的更新方法中,我检测 float “分数”是否高于或等于 100。如果是,则将场景切换到下一个关卡。但是因为 update 方法运行每一帧,它只是卡住并尝试一遍又一遍地改变场景。有没有办法在更新方法中只运行一次 if 语句?
最佳答案
1 - 子类化就是答案。创建一个类 BaseScene,它是 SKScene 的子类。在这里包括所有场景的所有共同元素。这不仅包括位掩码类别,还包括场景可能具有的任何方法或其他属性。这不仅可以解决您的问题,还可以缩短您的代码长度。
让你所有的关卡场景成为 BaseScene 的子类。
2 - 在您的代码中创建一个名为 scoreReached 或其他名称的 Bool 变量。在初始化时将此变量设置为 NO
,然后在 -update
方法中检查分数的代码中,执行如下操作:
if (!scoreReached)
{
if (score >= 100)
{
//Do whatever is needed
scoreReached = YES;
}
}
关于ios - Sprite Kit - 为多个场景定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21777548/