2015-02-06 52 views
0

嗨我的游戏中有一些三角形形状,需要一个collisionBitMask来处理接触,但我无法弄清楚如何建模circleOfRadius或RectangleOfSize以外的物理体。我如何制作一个自定义物理机构,以便联系人准确无误。这是我游戏中许多不同角色/障碍的问题。如何建立一个不是矩形或圆形的spriteNode

var randomNumber = arc4random() % 3 
    var randomMountainImage:String! 
    if randomNumber == 0 { 
     randomMountainImage = "RedMountain.png" 
    } else if randomNumber == 1 { 
     randomMountainImage = "OrangeMountain.png" 
    } else { 
     randomMountainImage = "BeigeMountain.png" 
    } 
    var mountainTexture = SKTexture(imageNamed: randomMountainImage) 
    var randomMountain = SKSpriteNode(texture: mountainTexture) 
    var maxPositionOffset = min(100, movementAmount) 
    randomMountain.position = CGPointMake(CGRectGetMidX(self.frame) + self.frame.width, 200 - gapHeight + CGFloat(movementAmount)) 
    randomMountain.zPosition = 8 
//here is the problem 
    randomMountain.physicsBody = SKPhysicsBody(rectangleOfSize: randomMountain.size) 
    randomMountain.physicsBody?.dynamic = false 
    self.addChild(randomMountain) 

回答

1

您可以设置SKTexture为您SKPhysicsbody参数:

randomMountain.physicsBody = SKPhysicsBody(texture: mountainTexture, size: mountainTexture.size) 

,解决了我的所有问题的

+0

确定好。非常感谢。非常简单 – 2015-02-06 18:20:26

+0

请注意,iOS 8.0和8.1中存在一个已知的“颠倒的物理体”错误,使用这种方法会在后续精灵上重复使用纹理时发生。 http://stackoverflow.com/questions/27748034/spritekit-skphysicsbody-bodywithtexture-is-upside-down/ 希望它不会发生在你身上,但如果你注意到一个颠倒的物理体,你会知道发生了什么。 – 2015-02-06 18:28:10

相关问题