0

我正在开发一个具有某种特定形状的角色的游戏,我正在SKSpriteNode用这条线创建一个对象:

let rockl:SKSpriteNode = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: newweight*ancho/16, height: alto/5))

我正在用这条线分配一个身体:

rockl.physicsBody = SKPhysicsBody(rectangleOfSize: pipeBotton.size)

我用这一行分配图像:

rockl.texture = SKTexture(imageNamed: "character.png")
rockl.texture.filteringMode = SKTextureFilteringMode.Nearest

但是边框与图像的边框不同。如何将对象调整为图像?或者创建自定义形状的技术是什么?

4

1 回答 1

2

你会想physicsBodySKPhyiscsBody(texture, size). 从文档:

当您的 sprite 具有您希望在其物理主体中复制的形状时,请使用此方法。纹理被缩放到新的大小,然后进行分析。创建了一个新的物理体,其中包括纹理中具有非零 alpha 值的所有纹素。这个身体的形状试图在性能和准确性之间取得良好的平衡。例如,如果保留细节会导致显着的性能损失,则可能会忽略这些细节。

您也可以SKSpriteNode直接使用纹理创建您的纹理,而不是先使用纯色创建它:

let rocklTexture = SKTexture(imageNamed: "character.png")
rocklTexture.filteringMode = SKTextureFilteringMode.Nearest

let rocklSize = CGSize(width: newweight*ancho/16, height: alto/5)

let rockl = SKSpriteNode(texture: rocklTexture, size: rocklSize)
rockl.physicsBody = SKPhysicsBody(texture: rocklTexture, size: rocklSize)
于 2014-09-03T19:59:43.993 回答