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];