问题
I did it with SKSpritenode
func AddTopTriangels() {
TopTriangel = SKSpriteNode(imageNamed:"Top-Triangels.png")
TopTriangel.position = CGPointMake(frame.size.width/2, frame.size.height/2 + 370)
TopTriangel.size = CGSize.init(width: 440, height: 35)
addChild(TopTriangel)
}
But i want to create it with SKShapenode , how i can do it?
回答1:
You should create SKSpriteNode
as you did in the question and just attach physic body to it with triangle shape:
var trianglePath = CGPathCreateMutable()
CGPathMoveToPoint(trianglePath, nil, -TopTriangel.size.width/2, -TopTriangel.size.height/2)
CGPathAddLineToPoint(trianglePath, nil, TopTriangel.size.width/2, -TopTriangel.size.height/2)
CGPathAddLineToPoint(trianglePath, nil, 0, TopTriangel.size.height/2)
CGPathAddLineToPoint(trianglePath, nil, -TopTriangel.size.width/2, -TopTriangel.size.height/2)
TopTriangel.physicsBody = SKPhysicsBody(polygonFromPath: trianglePath)
You can add this line:
sceneView.showsPhysics = true
to make sure the shape match your image (SKSpriteNode
), just remember to remove it after debugging.
来源:https://stackoverflow.com/questions/34197828/how-to-create-triangle-in-spritekit-swift-2