2012-04-17 1 views
3

저는 물이 퍼즐을 풀고 다른 스크린 요소와 상호 작용하는 데 사용할 수있는 속성으로 작용하는 게임을 진행하고 있습니다. 그리고 저는 어떻게 그러한 물리학적인 상호 작용을 할 수 있었는지 배우는 것에 관심이 많습니다.여기서 '내 물이 어디 니'의 물리학을 구현하는 법을 배울 수 있습니까?

입자를 사용하여 Box2D로 수행 할 수 있습니까?

+0

"작업중"이란 프로그래밍이나 게임을 의미합니까? 게임을하는 경우, 어떤 게임을 말하지는 않지만, 그들이하는 일을 어떻게하는지 우리에게 묻습니다. 더 많은 세부 사항이 필요합니다. –

+0

자, 게임을 개발 중입니다. 나는 그들이 그것에 부착 된 어떤 종류의 '접착 성 (stickiness)'을 가진 입자를 사용하여 물리학에 접근 하는지를 알고 싶다. – Draconar

+1

"나는 그들이 어떻게 그러한 물리학 적 상호 작용을 얻는지를 배우는 것에 매우 흥미가있다."- 그들은 "그들"인가? 이 질문은 모든 잠재적 인 게임 물 퍼즐에 적용되지 않을 수도있는 특정 솔루션에 대해 거대한 글을 쓰지 않고도 실질적인 답을 줄 수있을만큼 개방적입니다. 이 질문은 기존 설계 및 요구 사항에 대한 자세한 내용을 알고 특정 유형의 알고리즘을 찾는 경우 더 많은 관심을 끌 수 있습니다. –

답변

5

당신이 말하는 게임의 비디오를 본 후 (그리고 특정 게임에 대해 말한 후에) metaballs 시뮬레이션이 트릭을 할 수 있다고 생각했습니다.

인터넷 검색, 내가 Ludum Dare 항목이 정확한 게임을 구현하는 방법에 대한 설명을 발견 "여기서 내 물 metaball는"

http://www.ludumdare.com/compo/?p=104952&preview=true

입자 시뮬레이터가 가장 좋은 것입니다하지만 게임이 통합 내가 갖지 못한 귀중한 시간이 걸릴 것입니다. 그래서 저는 수영장과 장애물, 무거운 양의 작은 미끄러운 볼을 꽤 높은 밀도로 만들었습니다. 마찰, 댐핑 및 소량의 반발을 원하지 않습니다. 전체 화면 크기가 48m x 32m 인 경우 한 공의 반경은 약 0.25m입니다.

종종 한 곳을 클램핑하는 많은 동적 몸체를 시뮬레이션하는 것은 실제로 중량 연산입니다. 이를 고려해야합니다. 이런 이유로 나는 정말로 부정확 한 물리 설정을 사용했습니다. 나는 단 하나의 속도와 위치 하위 단계로 세계를 밟았습니다. 또한 물리 단계가 30/s로 고정되었습니다. (경쟁 후 20 점으로 충분 함을 알았습니다.) 항상 고정 된 시간 단계를 처리 할 때 물리가 계단이되어 있지 않지만 렌더링이있을 때 위치를 보간 또는 외삽하려고합니다. 나는 외삽 법을 선택했다. 이것은 당기는 것이 간단합니다.

RenderPos의 =의 PhysicalPos + 속도 * TimeAccumulator

그런 다음 그들은 렌더링 그것은 유체가 아닌 작은 공입니다 믿음에 선수를 속이는 방법임을 설명하기에 이동합니다. 그들은 메타 볼 렌더링의 한 형태를 사용합니다.

내 방법은 물방울을 개체의 물리적 크기의 두 배 반경을 가진 메타 볼로 렌더링하는 것이 었습니다. 메타 볼을 만드는 가장 빠른 방법은 중간에 불투명하고 매끄러운 원형 그라디언트가있는 가장자리에서 완전히 투명한 스프라이트였습니다.

+0

대단히 감사합니다. 그것은 많은 도움이되었습니다! – Draconar

관련 문제