중력이있는 세계에서 캐릭터가 곡선 경사를 따라 움직 이도록 만들기


10

나는이 게임을 보았다

멋진 바지 2 . 물리와 아름다운 애니메이션과는 별도로 캐릭터가 슬로프를 따라 움직이고 곡선 슬로프를 따라 움직입니다. Box2d에 대한 경험이 거의 없지만 곡선 경사면의 개념은 나에게 새로운 것입니다. 누군가이 개념과 그 구현에 대해 저를 깨우친다면 그것은 나에게 큰 도움이 될 것입니다. 구현이 box2d에없는 경우에도 환영합니다.


2
Meta (N에 포함 된 Flash)는 곡선 계산 방법을 다루는 충돌 방법에 대한 자습서를 제공합니다. metanetsoftware.com/technique/tutorialA.html
CodexArcanum

답변:


5

Box2D에서 커브를 어떻게 얻습니까?

에서 Box2D의의 출시되지 않은 버전 , 두 가지 새로운 형상 유형이 있습니다 b2LoopShapeb2EdgeShape 당신이 선 세그먼트의 시퀀스 중 곡선을 만들어 보자.

출시 된 버전에서는 여러 개의 작은 상자를 각도로 설정하여 유사한 효과를 얻을 수 있지만 본체는 연결점 근처에서 불안정하고 예기치 않은 일을하는 경향이 있습니다. 출시되지 않은 버전을 사용하는 것이 좋습니다.

캐릭터는 어떻게 곡선 아래로 떨어질 수 있습니까?

캐릭터를 바퀴로 만드십시오! 플랫 포머 물리학에 대한 나의 질문은 이것에 대한 약간의 토론을 가지고 있지만, 기본 아이디어는 캐릭터의 몸을 회전하는 바퀴에 장착하고 바퀴에 회전력을 가하여 움직이는 것입니다. 휠에 마찰이 있기는하지만 (실제로) 중력에 의한 하향 힘은 실제 휠과 같이 경사면을 아래로 회전시킵니다. 회전 조인트의 모터 매개 변수 를 변경하면 작은 경사로 굴러가는 것을 피하는 데 필요한만큼 회전에 저항 할 수 있습니다.


b2LoopShape을 사용할 때 원하는대로 경사를 만들 수 있습니다. 그러나 귀하가 게시 한 링크를 따라 가면; 문제는 box2d의 플래시 포트가 C ++ 버전으로 이어지지 않는다는 것입니다. 1.) 그것에 대한 제안이 있습니까? 또는 2.) 곡선 형 경사면을 생성 할 수있는 플래시 용 다른 물리 엔진에 대해 알고 있습니까?
Vishnu

Box2D의 Flash 포트가 새로운 조인트 / 셰이프 유형에 최신이라고 생각하지 않습니다. Box2D 이외의 Flash에서 어떤 물리 엔진을 사용할 수 있는지 잘 모르겠습니다.

@ Joe : 내가 물어 보면 b2LoopShape에 대한 AS 클래스를 작성하려고하면 가능할까요? Box2d Flash API에 통합 할 수 있습니다. 어디로 향해야합니까? 실마리?
Vishnu

1

팬시 팬츠는 Flash로 만들어졌으며 Flash에는 'hitTest'라는 특정 방법이 있습니다.이 방법을 사용하면 그려지는 모든 것에 대해 픽셀을 테스트 할 수 있습니다 (이 경우 팬시 팬츠 캐릭터의 하단을 따라 2-3 픽셀의 hitTests를 수행 할 수 있음) 지정된 영화 클립 객체 내에서 올바른 느낌을 얻는 것은 약간 까다로울 수 있지만이 내장 기능은 많은 Flash 게임이 곡선 경사와 충돌하는 이유입니다. 프로세스는 대부분의 다른 엔진에서 훨씬 더 복잡하며 일반적으로 수동으로 수행해야하지만 몇 가지 다른 방법이 있습니다.

내가 가장 익숙한 방법은 엔진이 타일 기반 인 경우 (Sonic the Hedgehog라고 생각) 곡선으로 지정된 타일 각각에 캐릭터의 현재 'X'위치에 따라 'Y'충돌 위치를 결정하는 공식이있을 수 있습니다 그 타일에. 경사가 얼마나 가파르고 구부러 지는지에 따라 공식을 결정해야합니다. 그래프 계산기 또는 그래프 프로그램을 사용하여 공식을 실험 할 수 있습니다. 이런 식으로 서로 다른 곡선과 수식을 가진 여러 타일을 가질 수 있습니다.


Sonic에는 타일에 대한 곡선 수식이 없습니다. 각 픽셀에 2d 높이 맵을 사용합니다.
AttackingHobo

@AttackingHobo : 각 픽셀에 대해 2dheight 맵이 무엇인지 말해 주시겠습니까? 아니면 플래시 게임에서 사용할 수있는 위치를 알려 주실 수 있습니까?
Vishnu

2
info.sonicretro.org/Sonic_Physics_Guide 이것을 보십시오. 상자 2D를 사용하는 경우 이것이 도움이 될지 모르겠습니다. 자신의 물리 엔진을 굴려야 할 수도 있습니다.
AttackingHobo

@Attacking Hobo : box2d api에서 루프를 허용하는 AS 3.0 클래스를 만들려고하면 곡선 경사면을 "수행"할 때 이점이 있습니까?
Vishnu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.