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

physicsBodyで作成したいと思うでしょうSKPhyiscsBody(texture, size)。ドキュメントから:

この方法は、スプライトの形状を物理ボディで複製したい場合に使用します。テクスチャは新しいサイズにスケーリングされてから分析されます。ゼロ以外のアルファ値を持つテクスチャ内のすべてのテクセルを含む新しい物理ボディが作成されます。このボディの形状は、パフォーマンスと精度のバランスをとろうとしています。たとえば、細かな詳細を保持するとパフォーマンスが大幅に低下する場合は、それらを無視することができます。

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 に答える