당신이 사용자의 터치 위치에 따라 공을 반송 할 수있는 내가 ball.physicsBody.applyImpulse(someVector)
같은 것을 사용하여, SpriteKit
에 상대적으로 간단한 게임을 짓고 있어요에서 벡터.
는 내가 공에 적용되는 physicsWorld.gravity
벡터의 값과 충동의 벡터로 재생하여 일을하고 나는 약간의 설명이 필요하다고 생각하는 방법을 중력과 벡터를 이해하려고 노력 했어요;이해 중력과 SpriteKit
이 코드를 사용하는 경우 :
self.physicsWorld.gravity = CGVectorMake(0, -10)
ball.physicsBody.applyImpulse(CGVectorMake(0, 10))
해서는 안 볼이 코드를 기반으로하고 당기고 미는 힘이 동일로 상식에 따라, 전혀 움직이지, 또는 적어도 이동 이 경우에 떨어지기 전에 10
의 정확한 거리를 올리십시오.
현실적으로 볼 은이 튀어 오르고 의 거리가 10 픽셀 위로 올라갑니다.
는 왜 그렇게 행동하고, 볼이 완전히 남아 있도록 벡터를 상쇄하기 위해 정확히 어떤 값을 내가 사용해야합니까?
나는 모든 종류의 설명을 기쁘게 생각합니다. 미리 감사드립니다.
문제는 ** 완전히 혼란 ** 관련없는 두 가지입니다. "applyImpulse"는 단순히 게임의 한 프레임 ***에 충동 ***을 적용합니다. (그래서 1/150 초 동안!) 물리학 ** 세계 ** 설정 인 "중력"은 전혀 관련이 없으며 항상 작동하는 필드를 만듭니다. – Fattie
* "실제로 어떤 일이 벌어지는가하는 것은 공이 튀어 오르고 장거리로 갈 것입니다."* 아주 간단히 볼의 질량에 따라 달라집니다 **. 당신은 1/100th second (짧은 하드 킥) 동안 그것을 걷어차 고 있습니다. 높이는 단순히 질량에 달려 있습니다. – Fattie