我怎么能在三角形周围包裹物理体?

时间:2015-05-30 03:22:12

标签: swift skphysicsbody

我现在正在使用rectangleOfSize将物理体包裹在我的三角形周围,但物理实体太大了。有没有办法让矩形更小,所以它不会太多。这就是我现在正在使用的:

编辑:我尝试了polygonFromPath,但三角形物理体的大小是实际三角形的一半。我使用此网站http://insyncapp.net/SKPhysicsBodyPathGenerator.html来制作坐标。

    topTriangle.position = CGPointMake(self.size.width / 0.5, self.size.height / 1.3)
    topTriangle.zPosition = 17
    topTriangle.runAction(sequenceAllThis)
    addChild(topTriangle)

    let offsetX = CGFloat()
    let offsetY = CGFloat()

    topTriangle.frame.size.width * topTriangle.anchorPoint.x;
    topTriangle.frame.size.width * topTriangle.anchorPoint.x;

    let path = CGPathCreateMutable()

    CGPathMoveToPoint(path, nil, 66 - offsetX, 1 - offsetY);
    CGPathAddLineToPoint(path, nil, 130 - offsetX, 136 - offsetY);
    CGPathAddLineToPoint(path, nil, 3 - offsetX, 135 - offsetY);
    CGPathAddLineToPoint(path, nil, 0 - offsetX, 135 - offsetY);
    CGPathAddLineToPoint(path, nil, 131 - offsetX, 135 - offsetY);
    CGPathAddLineToPoint(path, nil, 1 - offsetX, 135 - offsetY);

    CGPathCloseSubpath(path)

    topTriangle.physicsBody = SKPhysicsBody(polygonFromPath: path)
    topTriangle.physicsBody?.affectedByGravity = false
    topTriangle.physicsBody?.allowsRotation = false
    topTriangle.physicsBody?.categoryBitMask = GameOverCategory
    topTriangle.physicsBody?.contactTestBitMask = HeroCategory
    topTriangle.physicsBody?.collisionBitMask = HeroCategory
    topTriangle.physicsBody?.mass = 10000

1 个答案:

答案 0 :(得分:0)

使用SKPhysicsBody(polygonFromPath:),可以从您定义的路径生成自定义形状。

可以以各种方式构建路径。我所知道的两种方法是UIBezierPathCGPathCreateMutable类。