Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 无碰撞检测_Objective C_Sprite Kit_Skphysicsbody - Fatal编程技术网

Objective c 无碰撞检测

Objective c 无碰撞检测,objective-c,sprite-kit,skphysicsbody,Objective C,Sprite Kit,Skphysicsbody,我试图创建一个下降的圆圈,然后停在屏幕底部,但圆圈却一直在下降。有什么想法吗 我已更新代码以显示更新的位掩码: -(void)didMoveToView:(SKView *)view { self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame]; self.physicsBody.categoryBitMask = EDGE_BIT_MASK; self.physicsBody.collisionBitMask

我试图创建一个下降的圆圈,然后停在屏幕底部,但圆圈却一直在下降。有什么想法吗

我已更新代码以显示更新的位掩码:

-(void)didMoveToView:(SKView *)view {
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
self.physicsBody.categoryBitMask = EDGE_BIT_MASK;
self.physicsBody.collisionBitMask = BUBBLE_BIT_MASK | BALL_BIT_MASK;
self.physicsBody.dynamic = NO;
self.physicsBody.friction = 0.0;

self.physicsWorld.contactDelegate = self;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch * touch = [touches anyObject];
CGPoint touchLocation = [touch locationInNode:self];

growingNode = [SKShapeNode node];
growingNode.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(touchLocation.x, touchLocation.y, 100, 100)].CGPath;
growingNode.strokeColor = [UIColor whiteColor];
growingNode.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:growingNode.frame.size.width / 2];
growingNode.physicsBody.dynamic = true;
growingNode.physicsBody.restitution = 0.2;
growingNode.physicsBody.friction = 0.0;
growingNode.physicsBody.allowsRotation = NO;
growingNode.physicsBody.linearDamping = 0.0;
growingNode.physicsBody.collisionBitMask = EDGE_BIT_MASK | BALL_BIT_MASK;
growingNode.physicsBody.categoryBitMask = BUBBLE_BIT_MASK;
growingNode.physicsBody.contactTestBitMask = BALL_BIT_MASK;
growingNode.physicsBody.usesPreciseCollisionDetection = YES;
growingNode.physicsBody.affectedByGravity = YES;
growingNode.physicsBody.mass = growingNode.frame.size.width / self.frame.size.width;


[self addChild:growingNode];
}

需要相应地设置边和气泡节点的冲突位掩码值:

self.physicsBody.collisionBitMask = BUBBLE_BIT_MASK;

growingNode.physicsBody.collisionBitMask = BALL_BIT_MASK | EDGE_BIT_MASK;

我试过了。当我设置每个碰撞位掩码时,增长节点不再受重力影响。您能将代码发布到设置位掩码值的位置吗?我已经更新了上面的代码以显示更新的位掩码值。我的意思是,您为这些位掩码设置了什么值?我说的是枚举