我现在正在使用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
答案 0 :(得分:0)
使用SKPhysicsBody(polygonFromPath:)
,可以从您定义的路径生成自定义形状。
可以以各种方式构建路径。我所知道的两种方法是UIBezierPath
和CGPathCreateMutable
类。