2017-04-25 3 views
5

내 게임에 4 인용 관람차가 있습니다. 각 좌석에는 영웅이 앉을 수있는 플랫폼이 있습니다. 좌석이 상향 궤도에있을 때 영웅은 플랫폼에 조용히 머물러 있습니다.영웅 물리학 체가 움직이는 플랫폼 물리학 체에서 조용히 쉴 수있게하려면 어떻게해야합니까?

그러나 좌석이 아래쪽 궤도에있을 때 영웅은 약간 위아래로 움직입니다.

나는 몇 가지 명백한 것을 시도했다. 1. 반발을 0으로 설정하는 것은 효과가 없다. 2. linearDamping을 1로 설정해도 아무런 효과가 없습니다. 3. 플랫폼과 영웅의 질량을 동일하게 만드는 것은 효과가 없습니다. 4. 마찰 조정은 효과가 없습니다. 어떤 조언에 대한

self.physicsBody?.linearDamping = 1.0 
    self.physicsBody?.mass = 30 
    self.physicsBody?.restitution = 0 
    self.physicsBody?.friction = 0 

감사 :

여기
 supportNode?.physicsBody?.categoryBitMask = PhysicsCategory.ferrisPlatform.rawValue 
     supportNode?.physicsBody?.mass = 1000 
     supportNode?.physicsBody?.restitution = 0.0 
     supportNode?.physicsBody?.friction = 0.0 
     supportNode?.physicsBody?.linearDamping = 1.0 

영웅의 몸 : 여기

플랫폼 물리 기관이다. 그 영웅은 관람차 타는 것에가는 도중에 벌금이지만, 방해가되는 위아래로 움직이는 것을 보여줍니다.

+0

나는 이것에 대한 우아한 답변을 모르지만 나는 그것이 잘못되는 것 중 하나라고 생각합니다. 플랫폼 엔진에 물리 엔진을 사용할 때. 플레이어가 수평 적으로 움직이기를 원할 때 플랫폼이 비슷하다면 비슷한 어려움을 겪을 것입니다. 특히, 플레이어가 플랫폼에 "고정"하고 싶은 상황이 있지만 엔진이 사용하기를 원하는 종류의 힘으로 그 효과를 설명하기는 어렵습니다. –

+1

이것 좀보세요 : http://stackoverflow.com/a/31594616 – Whirlwind

+0

좌석은 핀 조인트로 매달려있어 문제가 더 복잡해 질 수 있습니다. 그래서, 올라가고, 내려 가고, 각도가 바뀝니다. 주인공의 y 위치를 좌석 플랫폼의 y 위치에 고정시키는 방법이 필요합니다. –

답변

2

내게는 문제가되는 것처럼 보입니다. 플랫폼의 질량은 바퀴와 고정되어 있다는 것을 알기 때문에 그것과 아무 상관이 없습니다. 따라서 플레이어의 질량을 늘려야합니다. 관람차에 들어가서 충분히 빠르게 회전 시키면 내려갈 때도 뜨게됩니다. 반발을 0으로 설정하면 바운스를 피하는 것이 좋지만 빛의 대상을 제자리에 유지하는 데 도움이되지 않습니다. 단지 충분히 빠르지 않을뿐입니다.

또한 신체가 미끄러지지 않도록 실제로 마찰을 늘려야 할 수도 있습니다. 0 마찰은 얼음 위에 앉아있는 것과 같습니다.

0

수동 didSimulatePhysics에 .. 물리학 계산 후 플레이어의 위치를 ​​조정 :

if player.isOnPlatform { 

    player.position.y = platform.position.y // Maybe +1 or something like that 

} 

당신이 didBegin(contact에서 플랫폼과 접촉을 할 때 지금 방금 온/오프 전환 연락처 대리자를 추가

if player.position.y > platform.position.y { // So jumping under the platform wont warp you to the top 
    player.isOnPlatform = true // Make sure to toggle this off at the right times as well, such as in you player.jump() method. 
} 

당신은 비트 마스크 등을해야하고 다른 문제가 올지도 모르는 것처럼 조정할 수 있습니다.하지만 이것은 플랫폼에있을 때 게임의 느낌을 엉망으로 만드는 플레이어의 중력/하향 힘에 영향을주지 않으면 서 좋은 생각입니다. .

0

영웅과 플랫폼에 대한 반발력을 -1.0으로 설정하면이 문제가 해결됩니다. 이것은 반환을위한 문서와 충돌합니다 : "이 속성은 0.0과 1.0 사이의 값이어야합니다"