Spritekit – 创build一个“墙”

我想知道如何创build一个spritekit的墙。 物体上的东西不能移动过去。 我知道我可以使用这个代码:

self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];

…但是当我使用这些代码时,我基本上也会得到一个“地板”。 我希望对象能够通过屏幕的底部,但不能离开一边。

提前感谢任何帮助!

最好的问候,路易。

这听起来像你需要2个物理机构,每个屏幕的一边。 尝试有类似的东西。

 // Left Wall SKNode *node = [SKNode node]; node.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(0.0f, 0.0f, 1.0f, CGRectGetHeight(self.frame))]; [self addChild:node]; // Right wall node = [SKNode node]; node.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(CGRectGetWidth(self.frame) - 1.0f, 0.0f, 1.0f, CGRectGetHeight(self.view.frame))]; [self addChild:node]; 

您可以为此创build单独的SKNode。

  SKNode *leftWall = [SKNode node]; leftWall.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(self.size.height, 1)]; leftWall.physicsBody.categoryBitMask = wallCategory; leftWall.physicsBody.affectedByGravity = NO; leftWall.position = CGPointMake(0, self.size.height / 2); [self addChild:leftWall]; SKNode *rightWall = [SKNode node]; rightWall.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(self.size.height, 1)]; rightWall.physicsBody.categoryBitMask = wallCategory; rightWall.physicsBody.affectedByGravity = NO; rightWall.position = CGPointMake(self.size.width, self.size.height / 2); [self addChild:rightWall];