2016-06-19 12 views
3

私はゲームのスプライトのテクスチャである非常に基本的なポリゴンを持っていますが、スプライトのこのテクスチャからphysicsBodyを作成しようとすると、SpriteKit PhysicsBody:基本形状のフィジックスボディを作成できませんでした

2016-06-19 08:25:21.707 Space Escape[14677:5651144] PhysicsBody: Could not create physics body. 

また、ゲームは、多くの異なる、単純なポリゴンを使用し、いくつかのためphysicsBodyを作成することができ、まだ他の人のためにそれがエラーを取得します。それが働いている私の遊び場で

Simple Heptagon Sprite Texture

+0

私のスプライトにも同様の問題がありました。 SKPhysicsBodyのテクスチャイメージをスプライトシートイメージからイメージセットイメージに変更したとき、このエラーはなくなりました。 – ZippyMind

答えて

1

:ここ

func setPhysics(size: CGSize) { 

    self.physicsBody = SKPhysicsBody(texture: asteroidTexture, size: size) 
    self.physicsBody?.angularDamping = 0 
    self.physicsBody?.angularVelocity = 2 

} 

は質感あります。以下のコードのように sizeパラメータを交換してみて、私は物理的な表現のこの種は、あなたの衝突を減速することができることを実験してきた

let asteroidTexture = SKTexture(imageNamed: "sprite") 
let physicsBody = SKPhysicsBody(texture: asteroidTexture, size: asteroidTexture.size()) 
+0

'self.physicsBody = SKPhysicsBody(texture:asteroidTexture、size:asteroidTexture.size())'に変更しましたが、同じエラーが表示されます。 – user1947112

+0

@ user1947112これは画像に関連する可能性があります。透明部分にピクセルがある場合、問題が発生する可能性があります。画像をゼロから再生成できますか? –

+0

私は、透明な背景を持つ単純なポリゴンとしてAdobe Illustratorで作成されました。画像は上に添付されていますが、余分なピクセルはありません。まったく同じ方法で作成された画像の一部が動作するのは非常に奇妙です。 – user1947112

0

私に知らせてください。その代わりに、あなたはあなたのスプライトの肉体に極端な精度を必要としない場合に使用してみてください:

self.physicsBody = SKPhysicsBody(circleOfRadius: size.width/2) 

これは、CPUの計算のための非常に軽く、スリムです。 ゲームがほぼ完了したとき(例えば80%)に大きな違いが見られます。私はこれが役立つことを願っています

関連する問題