出于某种原因,在碰撞发生之后,在我的比赛中得分上升4时,它应该只上浮了1看到,因为我如何使用score++
:得分++ 4增加分数,而不是由1
- (void)didBeginContact:(SKPhysicsContact *)contact
{
uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);
if (collision == (playerCategory | gainCategory)) {
score++;
scorelabel.text = [NSString stringWithFormat:@"%lu",(unsigned long)score];
[contact.bodyB.node removeFromParent];
}
}
它工作正常,但刚开始这样做,我不知道为什么。什么导致得分上升了四个而不是一个?我可以根据要求提供更多的代码。
你是怎么定义'score'的? –
得分由头文件中的@property(nonatomic)NSInteger *得分定义; – user3593148
碰撞检测可以关闭多次,您可能想要在增加分数之前分开实体,或者在联系后单位不碰撞2秒钟的冷却时间。 – Stephan