2015-02-06 2 views
0

Привет, У меня есть треугольные фигуры в моей игре, для которых требуется столкновениеBitMask для обработки контакта, но я не могу понять, как моделировать физику, кроме 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

хорошо известно, что решает все мои проблемы. Большое спасибо. Так просто –

+0

Обратите внимание, что в iOS 8.0 и 8.1 есть известная ошибка «вверх ногами», использующая этот подход, который происходит при повторном использовании текстуры при последующих спрайтах. http://stackoverflow.com/questions/27748034/spritekit-skphysicsbody-bodywithtexture-is-upside-down/ надеюсь, что это не произойдет с вами, но если вы заметите физическое тело с ног на голову, вы будете знать, что произошло. –

Смежные вопросы