2014-11-15 8 views
1

나는 spritekit을 사용하여 신속하게 게임을했습니다. 당신이 화면을 탭 경우는 방사상 중력장을 생성하고 모든 다른 개체를 가져옵니다. 그래서Swift Spritekit 분산 Gravity 필드

var fieldNode = SKFieldNode.radialGravityField(); 

fieldNode.falloff = 0.5; 
fieldNode.strength = 1; 
fieldNode.animationSpeed = 0.5; 

그것은 작동하지만 내 문제는 내가 단지 스프라이트에만 영향을하려는처럼 중력 필드를 만들 그것은 방사상 중력의 중심까지 일정한 거리 내에있을 때이고, 나는 1 이상의 스프라이트를 가질 것이다. 필자가 볼 수있는 방법은 2 가지 방법이 있다는 것입니다. 1. 스프라이트가 너무 멀리 떨어져 스프라이트의 반지름 중력을 꺼버 리거나 2. 반지름 중력이 특정 반지름을 지나면 사라지게 만듭니다. 장면에 대한 전반적인 중력도 있습니다.

그래서 주요 질문은 :

나도 스프라이트 1 중력을 끄거나 방사형 중력 해소 할 수있는 방법?

답변

2

필드 노드의 region 속성은 효과 영역을 결정합니다. 연결된 SKRegion 객체를 사용하면 반지름을 기준으로 원형 영역을 정의 할 수 있습니다.

피직스 바디에는 fieldBitMask을, 필드에는 categoryBitMask을 사용하여 어떤 필드가 어떤 바디에 영향을 주는지 선택적으로 제어 할 수 있습니다.

0

하여 사용해보십시오 :

let radius: CGFloat = 1000.0 
    gravityField.strength = Float(pow(radius, 2)) * pow(10, -3) 
관련 문제