2016-08-19 3 views
0

당신이 사용자의 터치 위치에 따라 공을 반송 할 수있는 내가 ball.physicsBody.applyImpulse(someVector) 같은 것을 사용하여, SpriteKit에 상대적으로 간단한 게임을 짓고 있어요에서 벡터.
는 내가 공에 적용되는 physicsWorld.gravity 벡터의 값과 충동의 벡터로 재생하여 일을하고 나는 약간의 설명이 필요하다고 생각하는 방법을 중력과 벡터를 이해하려고 노력 했어요;이해 중력과 SpriteKit

이 코드를 사용하는 경우 :

self.physicsWorld.gravity = CGVectorMake(0, -10) 
ball.physicsBody.applyImpulse(CGVectorMake(0, 10)) 

해서는 안 볼이 코드를 기반으로하고 당기고 미는 힘이 동일로 상식에 따라, 전혀 움직이지, 또는 적어도 이동 이 경우에 떨어지기 전에 10의 정확한 거리를 올리십시오.
현실적으로 볼 이 튀어 오르고 의 거리가 10 픽셀 위로 올라갑니다.
는 왜 그렇게 행동하고, 볼이 완전히 남아 있도록 벡터를 상쇄하기 위해 정확히 어떤 값을 내가 사용해야합니까?
나는 모든 종류의 설명을 기쁘게 생각합니다. 미리 감사드립니다.

+0

문제는 ** 완전히 혼란 ** 관련없는 두 가지입니다. "applyImpulse"는 단순히 게임의 한 프레임 ***에 충동 ***을 적용합니다. (그래서 1/150 초 동안!) 물리학 ** 세계 ** 설정 인 "중력"은 전혀 관련이 없으며 항상 작동하는 필드를 만듭니다. – Fattie

+0

* "실제로 어떤 일이 벌어지는가하는 것은 공이 튀어 오르고 장거리로 갈 것입니다."* 아주 간단히 볼의 질량에 따라 달라집니다 **. 당신은 1/100th second (짧은 하드 킥) 동안 그것을 걷어차 고 있습니다. 높이는 단순히 질량에 달려 있습니다. – Fattie

답변

0

10은 픽셀이 아니고 초당 미터이기 때문에 10 프레임을 1 프레임 (1/6 미터)으로 얻으려면 FPS로 나눠야합니다. 그러면 어떤 미터인지 알아야합니다. 픽셀 비율은이며, 그러면 픽셀 수를 얻을 수 있습니다. 충동의 경우 1 초당 1 킬로그램을 밀고있는 뉴턴 초입니다. 따라서 초당 실제 움직이는 수를 계산하려면 항목의 질량을 알아야합니다. 그래서 만약 당신의 물체가 1 KG라면, 그것은 0으로 균형을 잡을 것입니다. 나는이 물질을 계산하는 방법을 알려주는 실제 수학을하지 않을 것이고, 당신 스스로 연구해야 할 것입니다.

요약

:

중력 장치가 초 임펄스 단위 미터는 일 0

에 균형을 당신은 순서 단위와 일치해야하는 두 번째

당 뉴타운 초 일명 킬로그램 미터 자세한 내용을 보려면 https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsBody_Ref/#//apple_ref/occ/instm/SKPhysicsBody/applyImpulse : 및 https://developer.apple.com/library/mac/documentation/SpriteKit/Reference/SKPhysicsWorld_Ref/index.html#//apple_ref/occ/instp/SKPhysicsWorld/gravity을 참조하십시오.

+0

중력은 초당 미터 단위가 아니라 초 단위 미터 단위로 측정됩니다. – 0x141E

+0

는 0x141E 후 그 문서를 업데이트 사과 말해 @ BTW 제곱 1 초 정지 중력의 작동 방법에있어서 판독 1초 – Knight0fDragon

+0

흠 (여기되지 물리 사람) 판명 9.8 m/s^2 힘 9.8 NKG가, IS 또는 당신의 케이스 (10)에, 그래서 충동을 적용하는 것은 그래서 내 대답은 적어도 내가 얼마나 당신의 코멘트 확실하지 않다 @knightofdragon 개체 중력 – Knight0fDragon