ios - 如何解决这个分数?
<p><p>我正在开发一款游戏,我希望每次将某些内容添加到屏幕上时它都会计数。我已经设置了 <code>NSMutableArrays</code> 来包含我添加到屏幕的内容。有 6 个数组,每个数组每 x 秒生成一个项目。这是我为评分设置的:</p>
<pre><code>if (!_scoreLabel) {
_scoreLabel = ;
_scoreLabel.fontSize = 40;
_scoreLabel.position = CGPointMake(self.frame.size.width - 20, self.frame.size.height - 40);
_scoreLabel.fontColor = ;
_scoreLabel.zPosition = 2.0;
;
}
//add each debris array
_scoreLabel.text = ;
</code></pre>
<p>此代码在玩游戏的最初一段时间(从 <code>_debris1</code> - <code>_debris3</code>)运行良好,然后当 <code>debris4</code> 和其他代码开始生成时,得分并没有正确地加 1 加 1。相反,它开始添加分数 block ,(如果那令人困惑:对于游戏的第一部分,每次将一 block 碎片添加到游戏中时,它都会添加 1,然后当 4 和其他人来时,它开始向 <code>_scoreLabel</code> 添加 3, 7, 3, (随机数), 分数。</p>
<p>这样做有什么理由吗? <strong>是否可以让 <code>NSMutabaleArray</code> 包含所有这些数组作为子数组?</strong>我应该以不同的方式计算这个分数吗? </p>
<p>如果需要,这是一个示例 <code>spawnDebris</code> 方法:</p>
<pre><code>-(void)spawnDebris {
SKSpriteNode * debris = size:CGSizeMake(70, 70)];
debris.zPosition = 1.0;
debris.physicsBody = ;
debris.physicsBody.allowsRotation = NO;
debris.physicsBody.categoryBitMask = CollisionDebris;
RandomPosition = arc4random() %300;
RandomPosition = RandomPosition + 20;
debris.position = CGPointMake (RandomPosition, self.size.height + 40);
; //_debris is the NSMutableArray
;
//next Spawn:
[self runAction:[SKAction sequence:@[
,
,
]]];
if (_dead == YES) {
;
}
if (debris.position.y > 568) {
;
}
</code></pre>
<p>提前致谢。 <strong>如果需要任何其他信息,请告诉我。</strong> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您的问题在于您的代码逻辑。您的 spawnDebris 方法每隔 deb1Time 秒递归调用一次,这使其独立。如果您的其他碎片方法以相同的方式运行,那么您将无法真正控制事情何时发生。解决方案是在您的碎片方法中包含一个 ,以便在进行更改时更新分数。</p></p>
<p style="font-size: 20px;">关于ios - 如何解决这个分数?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/23034695/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/23034695/
</a>
</p>
页:
[1]