我从SpriteKit开始。我希望我的spriteNote从设备的边缘反弹。问题是我没有看到任何允许我添加边缘的方法。
// initWithSize:
_player.physicsBody.dynamic = YES;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
self.physicsWorld.gravity = CGVectorMake(0.0f, 1.0f);
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
self.physicsWorld.gravity = CGVectorMake(0.0f, -1.0f);
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesCancelled:touches withEvent:event];
self.physicsWorld.gravity = CGVectorMake(0.0f, -1.0f);
}
我已尝试向update
方法添加内容,但位置看起来很奇怪(我只有横向模式,_player.position.y is
~150px,当我看不到播放器@。@ player graphic是50x50px,节点是SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width / 2
)。
答案 0 :(得分:1)
为了在SpriteKit中为屏幕周围添加边缘以进行碰撞,您需要将physicsBody附加到场景中。
在-initWithSize:
方法中,您需要添加以下行:
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
这将在场景周围添加一个球可以反弹的边界。