2016-06-19 8 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

내 스프라이트에서 비슷한 문제가 발생했습니다. Texture 이미지를 스프라이트 시트 이미지에서 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에서 이미지를 재생성 할 수 있습니까? –

+0

저는 Adobe Illustrator에서 투명한 배경을 가진 단순한 다각형으로 만들어졌으며 이미지는 위에 첨부되어 있습니다. 추가 픽셀이없는 것은 확실합니다. 똑같은 방식으로 만들어진 이미지 중 일부가 작동한다는 것은 매우 이상합니다. – user1947112

0

알려주세요. 당신이 당신의 스프라이트의 육체에 극도의 정밀도를 필요로하지 않는 경우 대신의 사용하려고 :

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

그것은 CPU 계산 훨씬 가볍고 슬림하다. 게임이 거의 완료되면 큰 차이를 볼 수 있습니다 (예 : 80 %). 이게 도움이 되길 바란다.