2016-04-11 3 views
0

私は画像が互いに衝突するアプリケーションに取り組んでいます。一度衝突するとコードが実行されますが、バックグラウンドが見えても画像の背景が衝突するという問題があります。どのようにしてこの目に見えない背景やフレームを取り除き、衝突する唯一のものが画像であるようにしますか?あなたは私に答えを与えてください。これは、答えを持っている場所に私を紹介してくれますか?速い/スプライトキットで画像フレームを取り除く

+0

実際には表示されない – hamobi

答えて

2

私はあなたのイメージのサイズに基づいて、形状が長方形のSKPhysicsBodiesを持っていると思いますか?それは、画像の唯一の非透明部分がcolissionを引き起こすことができることが不可欠である場合は、これらは、(より高価であることを念頭に置いてのいずれかSKPhysicsBody(texture:size:)またはSKPhysicsBody(texture:alphaThreshold:size:)

ベアを使用して、画像のテクスチャを使用してSKPhysicsBodyを作成し調査することをお勧めします単純な矩形よりも処理能力が要求される)。実際例えば

ので:

let mySpriteTexture = SKTexture(imageNamed: "mySprite") 
let mySprite = SKSpriteNode(texture: mySpriteTexture) 
let myPhysicsBody = SKPhysicsBody(texture: mySpriteTexture, size: mySprite.size) 

mySprite.physicsBody = myPhysicsBody 

しかし、これはあなたのイメージファイルmySprite.pngが、その中にいくつかの透明性を使用して作成されていることが必要になります。

+0

これは、画像の背景が実際に透明な場合、つまりアルファ - 画面と同じ色(黒い背景などの黒色)の場合のみ有効です。画像の一部と見なされます。 –

+0

レスポンスありがとう、私はテクスチャやサイズのために何を置くべきか、そして私はそれらの値をどのように見つけるべきかわかりません。 – Jaa3

+0

あなたが使用している画像 - これらはSKSpriteNodesですか?あなたは.pngファイルなどからそれらを作成していますか? –

関連する問題