我有四个雪碧:球,物体,线和星星。我还界定了以下类别:
static const uint32_t ballCategory = 0x1 << 0; static const uint32_t objectsCategory = 0x1 << 1; static const uint32_t lineCategory = 0x1 << 2; static const uint32_t starsCategory = 0x1 << 3;
物业:
ball.physicsBody.categoryBitMask = ballCategory;
ball.physicsBody.contactTestBitMask = objectsCategory | starsCsategory;
object.physicsBody.categoryBitMask = objectsCategory;
object.physicsBody.contactTestBitMask = ballCategory;
star.physicsBody.categoryBitMask = starsCategory;
star.physicsBody.contactTestBitMask = ballCategory;
line.physicsBody.categoryBitMask = lineCategory;
line.physicsBody.contactTestBitMask = objectsCategory;现在,在我的didBeginContact方法中(没关系):
if( ( contact.bodyA.categoryBitMask & lineCategory ) == lineCategory || ( contact.bodyB.categoryBitMask & lineCategory ) == lineCategory ) {
score++;
scoreLabelNode.text = [NSString stringWithFormat:@"%ld", (long)score];
}
if( ( contact.bodyA.categoryBitMask & ballCategory ) == ballCategory || ( contact.bodyB.categoryBitMask & ballCategory ) == ballCategory ) {
[self gameOver];
}另一部分(这不起作用):
if( ( contact.bodyA.categoryBitMask & starsCategory ) == starsCategory || ( contact.bodyB.categoryBitMask & starsCategory ) == starsCategory ) {
score = score + 100;
scoreLabelNode.text = [NSString stringWithFormat:@"%ld", (long)score];
}我的错在哪里?我要:当球“接触”明星时,我得到100分。
发布于 2014-05-08 19:39:19
代码中有一个错误:(starsCsategory)
ball.physicsBody.contactTestBitMask = objectsCategory | starsCsategory;https://stackoverflow.com/questions/23443146
复制相似问题