2015-02-06 97 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

相關問題