【发布时间】:2014-11-07 14:07:36
【问题描述】:
我有一个气球游戏。我从底部添加气球,它们飞起来,同时能够飞出屏幕。我给了气球physicsBodys,所以它们会相互碰撞,但我想让气球在屏幕的左右边缘发生碰撞。我找到了一个解决方案,其中精灵对象在 Rays 站点上的所有屏幕上反弹。但我需要一个不同的解决方案。 这是我的气球代码:
MBDBallon *randomBallon = [[MBDBallon alloc] initWithImageName:balloonImageName
andBallonSize:ballonSize
withBallonImageName:[self.balloonColorImageNamesArray objectAtIndex:balloonWithColorIndex]
withStartingPosition:CGPointMake(self.viewSize.width/2, - self.viewSize.height )];
//randomBallon.name = [self returnRandomImageNameFromArray:self.ballonSpriteImageNamesArray];
randomBallon.physicsBody.usesPreciseCollisionDetection = YES;
randomBallon.physicsBody.categoryBitMask = balloonCategory;
randomBallon.physicsBody.collisionBitMask = balloonCategory;
randomBallon.physicsBody.contactTestBitMask = balloonCategory;
这是我的左墙代码:
SKSpriteNode *leftWall = [[SKSpriteNode alloc] initWithColor:[UIColor redColor] size:CGSizeMake( self.viewSize.width / 15, self.viewSize.height * 3 )];
[leftWall setAnchorPoint:CGPointMake(0.0f, 0.0f)];
leftWall.position = CGPointMake( self.viewSize.width / 15 , 0.0f );
leftWall.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake( self.viewSize.width / 15, self.viewSize.height * 3 )];
leftWall.physicsBody.categoryBitMask = balloonCategory;
leftWall.physicsBody.collisionBitMask = balloonCategory;
leftWall.physicsBody.contactTestBitMask = balloonCategory;
leftWall.physicsBody.usesPreciseCollisionDetection = YES;
leftWall.physicsBody.allowsRotation = NO;
leftWall.physicsBody.dynamic = NO;
leftWall.physicsBody.friction = 0.0f;
[self addChild:leftWall];
然而,在几次气球碰撞之后,墙壁正在移动。我真的不知道阻止这种行为的捕获或财产在哪里。 :
leftWall.physicsBody.dynamic = NO;
应该停止所有运动,但事实并非如此。请帮忙,谢谢:)。
【问题讨论】:
标签: ipad ios8 sprite-kit collision-detection