2013-12-23 3 views
1

휠을 자동차에 부착하고 자동차가 날 때 휠이 중력의 영향을 받기를 원할 경우. 너는 어떻게 sais 바퀴를위한 물리 구조를 만든다 : "바퀴는 봄에 차에 붙어 있고 중력에 의해 영향을 미친다."? 스프링과 같은 노드에 SKPhysicsBody를 연결하는 방법은 무엇입니까?

나는이 시도 :

SKPhysicsBody *phys = [SKPhysicsBody bodyWithCircleOfRadius:20]; 

을하지만 바퀴는 차를 떨어진다. 차에 "부착"되어 있지 않습니다.

다른 방법으로 말하기 : 장난감 자동차를 움켜 쥐는 경우 중력 때문에 휠이 조금 아래로 내려갑니다. 그러나 그들은 바닥으로 떨어지지 않습니다. 그들은 차에 붙어 있습니다.

또는 무게가있는 스프링을 생각해보십시오. 당신이 그것을 흔들면, 체중이 바운스됩니다. 그러나 그것은 봄에 붙어서 떨어지지 않습니다.

스프라이트 키트에서 이와 같은 것을 시뮬레이트하는 적절한 방법은 무엇입니까? SKPhysicsJointSpring이라는 것을 발견했습니다. 알아낼 때 대답을 게시 할 것입니다.

답변

2

확인 하시려면 SKPhysicsJointSpring이 필요합니다. 그러나 앵커는 세계 좌표계에 정의되어야하기 때문에 문제가 있습니다.

SKPhysicsBody *p = [SKPhysicsBody bodyWithCircleOfRadius:20]; 
p.affectedByGravity = NO; 
p.allowsRotation = NO; 
self.car.physicsBody = p; 

p = [SKPhysicsBody bodyWithCircleOfRadius:30]; 
p.affectedByGravity = NO; 
p.allowsRotation = NO; 
self.wheel.physicsBody = p; 

SKPhysicsJointSpring *spring = [SKPhysicsJointSpring jointWithBodyA:_car.physicsBody bodyB:_wheel.physicsBody anchorA:_car.position anchorB:_wheel.position]; 
spring.damping = 0.05; 
spring.frequency = 0.8; 
[self.rootNode.scene.physicsWorld addJoint:spring]; 

이것은 마치 자동차 또는 휠에서 동작을 실행하지 않는 한 작동하는 것처럼 보입니다. 내가 그렇게하면 차와 바퀴가 많이 흔들립니다.

관련 문제