2017-01-03 3 views
2

발사체 (특히 SKSpriteNode)에 무언가를 치기 전까지 지속적으로 움직 이도록 강제 또는 추력을 적용하는 방법을 궁금합니다. 나는이 같은 속도를 설정 같은 몇 가지 방법을 시도 :Swift 3 (SpriteKit) : 발사체 이동하기

let node = SKSpriteNode(imageNamed: "node") 
node.physicsBody = SKPhysicsBody(rectangleOf: node.size) 
node.physicsBody.velocity = CGVector(dx: 5, dy: 5) 

또는 대신의 끝에서 노드의 속도 값을 변경, 나는 시도 :

node.physicsBody?.applyImpulse(CGVector(dx: 5, dy: 5)) 

또는

node.physicsBody?.applyForce(CGVector(dx: 5, dy: 5)) 

없음을 이 중 실제로 발사체가 움직입니다. 나는 심지어 SKAction으로 각 프레임을 영원히 똑같은 충동을가하면서 시도했지만 아직 움직임이 없다. 나는 정말 어떤 도움을 주셔서 감사합니다 :) 고마워. 객체에 확실한 불 동성을 추가

답변

2

시도 :

let node = SKSpriteNode(imageNamed: "node") 
node.physicsBody = SKPhysicsBody(rectangleOf: node.size) 
// add this, to ensure dynamism: 
node.physicsBody.isDynamic = true 

이제 모든 힘과 자극이 작동합니다. 훨씬 더 큰 숫자를 사용하는 것이 좋습니다. 물체의 크기와 질량에 따라 다르지만, 급격한 움직임을 얻으려면 몇 자리수가 필요합니다.

+0

'isDynamic'의 기본값은'true '입니다. – 0x141E

+0

나는 이것을 false로 설정했습니다. 정말 고마워요. :) 깨닫지 못했습니다. –