【发布时间】:2015-08-12 09:42:32
【问题描述】:
当我在游戏中更新分数时遇到问题我不知道是什么问题但是当我射击某些东西时分数应该增加 1 但在我的代码中有时它会增加 2 或 3 有时 1 它不是恒定的不知道为什么会发生这种情况是我使用的代码
@interface GameScene () {
SKLabelNode* _scoreLabelNode;
NSInteger _score;
}
-(void)didMoveToView:(SKView *)view {
_score = 0;
_scoreLabelNode = [SKLabelNode labelNodeWithFontNamed:@"Silom Regular"];
_scoreLabelNode.fontSize = 50;
_scoreLabelNode.position = CGPointMake(self.size.width - 335 , self.size.height - 60);
_scoreLabelNode.zPosition = 100;
[self addChild:_scoreLabelNode];
_scoreLabelNode.text = [NSString stringWithFormat:@"%d",_score];
}
if (contact.bodyB.categoryBitMask == ObjectCategory) {
_score++;
_scoreLabelNode.text = [NSString stringWithFormat:@"%d",_score];
}
【问题讨论】:
-
在 _score++ 上添加断点,只是为了检查它增加了多少次
-
如果条件
if (contact.bodyB.categoryBitMask == ObjectCategory),你在哪里写的?在哪个活动上? -
看看这是否有帮助:stackoverflow.com/a/28527280/3402095 如果该帖子中的任何内容都不能应用于您的代码,您可以尝试使用类似这样的方法:stackoverflow.com/a/23367987/3402095
-
@NeverHopeless 在这个 -(void)didBeginContact:(SKPhysicsContact *)contact {
-
@Misha 我把 "NSLog (@"%d", _score )" 放在 "_score++" 之后,它应该像 10 11 12 .. 一样递增,但分数从 10 跳到 12
标签: ios objective-c sprite-kit skscene