ios - 阶段完成后保持奖金
<p><p>我正在开发一个简单的游戏,你从三个“特殊技能”开始。当您单击按钮时,您有两个左等等,直到您没有。但是,当我进入一个新阶段时,我又回到了第 3 阶段。这是错误的,我想保留与第 1 阶段相同数量的“技能”。</p>
<p>我知道这是因为下面的代码而发生的。我在 initWithSize 中初始化我的“权力”,每次加载舞台时都会调用它。 </p>
<pre><code> -(id)initWithSize:(CGSize)size level:(int)level {
if (self = ) {
power1=33;
power2=3;
power3=3;
NSDictionary *config=[NSDictionary dictionaryWithContentsOfFile:
[pathForResource:
@"Levels" ofType:@"plist"]];
</code></pre>
<p>我将代码编辑为如下所示。
因此,如果它是第 0 阶段,我的权力会按照我的说明进行初始化,并且当我移动到第 1 阶段时,它会继续。
但是,当我进入第一阶段时,我的能力是空白/零,因为如果我不在阶段零/空白中,我不确定我的 if 条件应该是什么</p>
<pre><code>-(id)initWithSize:(CGSize)size level:(int)level {
if (self = ) {
// power1=33;
// power2=3;
// power3=3;
NSDictionary *config=[NSDictionary dictionaryWithContentsOfFile:
[pathForResource:
@"Levels" ofType:@"plist"]];
if (level==0) {
power1=33;
power2=3;
power3=3;
}
_level=level;
</code></pre>
<p>游戏获胜</p>
<pre><code> GameLevelScene *newScene = [ initWithSize:self.size
level:_level+1];
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>有几种方法可以做到这一点。我不知道你的完整代码,所以我认为使用 <code>NSUserDefaults</code> 可能是你情况下最安全的选择。</p>
<p>在关卡结束时,在进入下一个关卡之前,将你的玩家属性写入 <code>NSUserDefaults</code>,如下所示:</p>
<pre><code>NSString *valueToSave = ;
[ setObject:valueToSave forKey:@"Power1"];
[synchronize];
</code></pre>
<p>然后在下一级开始时,您可以像这样读回保存的值:</p>
<pre><code>NSString *savedValue = [ stringForKey:@"Power1"];
if(!savedValue)
{
NSLog(@"no value saved");
} else {
long someIntValue = ;
}
</code></pre>
<p>如果你对 NSUserDefaults 有点陌生,你应该阅读 <a href="https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html" rel="noreferrer noopener nofollow">NSUserDefaults Class Reference</a> .</p></p>
<p style="font-size: 20px;">关于ios - 阶段完成后保持奖金,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/23706523/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/23706523/
</a>
</p>
页:
[1]