무한 러너 / 점퍼에서 캐릭터가 갭에 빠졌는지 확인하는 방법은 무엇입니까?


12

2D 무한 러너를 만들고 있습니다. 게임에서 캐릭터가 기둥에서 기둥으로 점프하고 기둥이 무작위로 생성됩니다. 나는이 일을하고있다. 그러나 캐릭터가 기둥으로 뛰어 들지 못하고 기둥 사이의 틈에 빠졌는지 여부를 결정하는 방법은 무엇입니까? 기둥은 보통 직사각형입니다.


OT :이 질문이 rpg.SE에 게시되었지만 "지금 어떤 종류의 규칙 악용이 발견 되었습니까? 무한 실행 방법"이라고 생각했습니다.
o0 '.

답변:


20

플랫폼의 최소 허용 높이보다 낮은 레벨의 하단에 직사각형 영역을 추가하십시오. 플레이어가이 지역과 교차 한 경우 플랫폼에서 떨어졌습니다.


1
이 사각형을 카메라의 자식으로 만들어 카메라와 함께 움직이고 항상 존재합니까? 너무 쉽습니다. 감사.
SanSolo

플레이어가 레벨을 넘어서는 안 되더라도, 이것이 어떻게 든 관리한다면 좋은 보호 책이라고 생각합니다.
mucaho

5
문자 그대로 교차점을 확인하는 경우 캐릭터가 표면을 통해 클립하는 것처럼 빠르게 떨어질 수 없는지 확인하십시오 (예 : 캐릭터의 전체 위와 다음 프레임의 전체 아래).
wchargin

2
그렇습니다. rect는 이것을 피하기 위해 필요한만큼 아래로 연장해야합니다. 또한 높이를 확인하면 효과가 있지만 레벨에 따라 "킬 영역"크기를 조정할 수 있습니다.
mklingen

6
사각형을 통한 "클리핑"을 피하려면 왜 간단하지 if (playerPos.x < minHeight)않습니까?
Cole Johnson

24

게임이 가로로만 스크롤되는 경우 캐릭터의 세로 위치가 스테이지의 아래쪽 가장자리 아래에 있는지 확인할 수 있습니다.

게임이 세로 방향으로 스크롤되는 경우 (아마도 위 방향으로) 플레이어가 뷰의 아래쪽 가장자리 (예 : 화면의 스테이지 영역 또는 카메라 초점) 아래로 떨어진 지 확인할 수 있습니다.

일반적으로 사망 조건은 캐릭터가 "카메라"에 남아 있지 않은 경우입니다. 카메라의 움직임을 제어하여 게임 플레이를 조정할 수 있습니다. 예를 들어, 세로 스크롤 단계에서 카메라가 약간 아래로 "고무 밴드"만 허용하고 위쪽으로 완전히 움직이면 깊고 오프 스크린으로 넘어집니다.


예, 그것도 쉬운 방법입니다. 캐릭터가 될 수있는 가장 낮은 위치를 찾아야합니다.
SanSolo

1
옳은! 가로 스크롤의 경우 맵 편집기에서 스테이지의 세로 크기를 간단히 확인할 수 있습니다. 세로 스크롤러의 경우 카메라가 위쪽으로 만 움직이는 지 확인할 수 있습니다. 그렇게하면 캐릭터가 쓰러지면 카메라 화면 아래로 내려갑니다. 그런 다음 캐릭터의 세로 위치가보기의 아래쪽 경계 아래로 떨어지는 지 간단히 확인할 수 있습니다.
Jelle van Campen

@JellevanCampen : 카메라를 반드시 위로 움직일 수 있도록 제한 할 필요는 없습니다. "카메라"에 남아 있지 않은 캐릭터를 죽이거나 카메라를 따라 다닐 수 있습니다.
Mooing Duck

나는 카메라가 수평 경계에 직접 연결되어 있기 때문에이 답변을 좋아하지 않습니다. mklingen의 대답은 레벨의 경계가 화면 높이보다 두 배 이상인 경우에도 작동합니다. 카메라는 위아래로 움직여 캐릭터에 초점을 맞출 수 있지만 캐릭터가 카메라보다 빨리 떨어지고 수평을 유지하면서 카메라에 직접 연결된 경계 상자와 충돌 할 위험은 없습니다.
Kevin

2
@ 케빈 : 나는 일반적인 게임에 동의하지만 절차 적으로 생성 된 무한 스크롤러에는 동의하지 않습니다. 예를 들어 세로 스크롤러에서는 새 상자를 계속 생성하고 화면 밖 상자를 표시 해제하거나 카메라가 움직일 때 상자를 계속 업데이트해야합니다. 사망 조건은 "카메라에 남아 있지 않음"과 직접 연결되어 있으므로 조건을 카메라에 연결하는 것이 좋습니다. 또한 새로운 물체를 생성하고 충돌 검사에 의존하기보다는 카메라 경계 검사를 수행하는 것이 더 효과적입니다.
Jelle van Campen

2

수직 좌표 를 확인하는 대신 수직 속도를 확인할 수 있습니다. 캐릭터가 아래로 빠르게 어떤 임계 값보다 떨어지는 경우 (이 경우에도, 그들은 죽었어 결론 입니다 여전히 영향은 치명적일 것이다 도달 일부 플랫폼 낮은에 충분가).

물론, 이것은 게임이 기본 자유 낙하 물리를 올바르게 구현하는 경우에만 작동합니다. 즉 하강 속도가 실제로 낙하하는 동안 (단말 속도까지) 실제로 증가 합니다.


1

기둥 높이가 있으면 기존의 가장 낮은 기둥을 찾아서 플레이어의 세로 위치와 비교할 수 있습니다. 그가 가장 낮은 기둥 아래에 있다면, 그가 다시 돌아올 가능성이 없습니다. 이 확인은 플레이어의 앞뒤에있는 기둥으로 만 제한 할 수 있습니다.

예 : 우리는 높이가 [10, 20, 40] 인 3 개의 기둥이 있습니다. 점프 한 플레이어는 키가 40 인 기둥에 있고 앞으로 20으로 점프합니다. 그는 40에서 20 사이의 간격을 느꼈으 며 현재 높이는 15입니다. 덜 엄격한 점검을 위해 10 세 미만이 될 때까지 기다리십시오.


모든 기둥은 같은 크기입니다. 그것은 두 기둥 사이의 수평 간격입니다. :)
SanSolo

0

캐릭터가 얼마나 오랫동안 쓰러 졌는지 세십시오. (즉, "아래로"이동 한 시간). 그들이 한 번 이상의 시간을 넘어 서면 정의상 무대에서 떨어졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.