我正在开发一个简单的游戏,你从三个“特殊技能”开始。当您单击按钮时,您有两个左等等,直到您没有。但是,当我进入一个新阶段时,我又回到了第 3 阶段。这是错误的,我想保留与第 1 阶段相同数量的“技能”。
我知道这是因为下面的代码而发生的。我在 initWithSize 中初始化我的“权力”,每次加载舞台时都会调用它。
-(id)initWithSizeCGSize)size levelint)level {
if (self = [super initWithSize:size]) {
power1=33;
power2=3;
power3=3;
NSDictionary *config=[NSDictionary dictionaryWithContentsOfFile:
[[NSBundle mainBundle]pathForResource:
@"Levels" ofType"plist"]];
我将代码编辑为如下所示。 因此,如果它是第 0 阶段,我的权力会按照我的说明进行初始化,并且当我移动到第 1 阶段时,它会继续。 但是,当我进入第一阶段时,我的能力是空白/零,因为如果我不在阶段零/空白中,我不确定我的 if 条件应该是什么
-(id)initWithSizeCGSize)size levelint)level {
if (self = [super initWithSize:size]) {
// power1=33;
// power2=3;
// power3=3;
NSDictionary *config=[NSDictionary dictionaryWithContentsOfFile:
[[NSBundle mainBundle]pathForResource:
@"Levels" ofType"plist"]];
if (level==0) {
power1=33;
power2=3;
power3=3;
}
_level=level;
游戏获胜
GameLevelScene *newScene = [[GameLevelScene alloc] initWithSize:self.size
level:_level+1];
有几种方法可以做到这一点。我不知道你的完整代码,所以我认为使用 NSUserDefaults
可能是你情况下最安全的选择。
在关卡结束时,在进入下一个关卡之前,将你的玩家属性写入 NSUserDefaults
,如下所示:
NSString *valueToSave = [NSString stringWithFormat"%i",someIntValue];
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey"ower1"];
[[NSUserDefaults standardUserDefaults]synchronize];
然后在下一级开始时,您可以像这样读回保存的值:
NSString *savedValue = [[NSUserDefaults standardUserDefaults] stringForKey"ower1"];
if(!savedValue)
{
NSLog(@"no value saved");
} else {
long someIntValue = [savedValue integerValue];
}
如果你对 NSUserDefaults 有点陌生,你应该阅读 NSUserDefaults Class Reference .
关于ios - 阶段完成后保持奖金,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23706523/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |