원 주위에 사용자 친화적 인 극좌표 이동을하려면 어떻게해야합니까? 수 있으므로 여기에

나는 당신이 배를 가진 행성에 착륙하고 배를 나가서 걸어 다닐 수있는 2D 게임을하고 있습니다.

이 행성들은 매우 작으며 (때로는 ~ 350 픽셀 반경으로 생각) 측면에서 보입니다. 화면에서 지구 전체를 쉽게 볼 수 있습니다.

이것은 혼란 스러울 수 있으므로 여기에 사진이 있습니다.
우주 게임

A와 D 키를 사용하여 각각 시계 반대 방향과 시계 방향으로 움직입니다. 문제는 당신이 행성의 “상단”(상반부)에 있다면, 이것은 의미가 있습니다 : A는 왼쪽으로 움직이고 D는 오른쪽으로 움직입니다. 그러나 행성의 “하단”(하단)에 있으면 A가 오른쪽으로 이동하고 D가 왼쪽으로 이동합니다.

이것을보다 사용자 친화적으로 만드는 방법에 대한 아이디어가 있습니까?



답변

내 첫 번째 제안은 = 시계 반대 A방향 및 D= 시계 방향 운동으로 고정하는 것입니다. 이것은 매우 혼란스럽지 않으며 이와 같은 궤도 운동과 관련하여 거의 “표준”(즉 가장 일반적인) 선택입니다.

다른 방법은 게임이 움직이는 방식을 바꾸는 것입니다. 플레이어가 행성에있을 때 이동하는 대신 행성을 회전시킬 수 있습니다. 이것은 매우 일반적인 선택이지만 플레이어를 제외한 모든 것이 회전해야하기 때문에 화면에 여러 개의 행성이있는 경우 방향 이 바뀔 수 있습니다. 이 방법을 사용하기로 결정하면 지구의 일부만 표시하여 눈으로 추적해야하는 움직이는 물체의 양을 줄일 수 있습니다.

행성의 절반 만

마우스를 자유롭게 사용할 수 있으면 항상 마우스 클릭을 사용하여 이동할 수 있습니다. 위치를 클릭하면 플레이어가 해당 지점을 향해 이동하고 가장 짧은 방향을 자동으로 선택합니다. 원은 “클릭”이고 화살표는 가장 짧은 방향입니다.

클릭을위한 최단 방향

추가 보너스로 게임을 앱으로 게시하려는 경우 모바일 컨트롤로 변환하는 것도 매우 쉽습니다.


답변

캐릭터가 우주선에서 나올 때 캐릭터가 지구의 맨 위에 오도록 뷰 방향을 조정 한 다음 캐릭터가 걸어 다니면서 뷰를 움직입니다. 이렇게하면 지구상에서 캐릭터가 항상 시야와 관련하여 맨 위에 있으므로 왼쪽 / 오른쪽 컨트롤은 어느 위치에 있더라도 일관성을 유지할 수 있습니다.


답변

(정적 카메라가 아닌 스틱 기반 움직임이있는 3 인칭 게임에서 종종 사용되는) 접근 방식 중 하나는 입력이 시작될 때마다 (키를 누를 때) 움직임 기준 프레임을 설정하고 유지하는 것입니다. 입력이 종료 될 때까지 해당 이동 프레임 (키에서 손을)니다). 즉, “A”키는 항상 문자를 “왼쪽으로”, 원의 맨 아래에 있으면 시계 방향으로, 그렇지 않으면 시계 반대 방향으로 키를 놓을 때까지 문자를 움직입니다.

불행히도, 원으로 제한되어 있기 때문에 캐릭터가 원의 가장 왼쪽 또는 오른쪽 범위에 있거나 근처에 있으면이 기술은 여전히 ​​떨어져 있습니다. 어느 방향으로 갈지 임의로 선택하여 간단하게 작동시킬 수 있지만 사용자는 혼동 될 수 있습니다. 기존의 “A는 항상 반 시계 방향”접근 방식을 고수한다는 사실이 더 혼란 스러울 수 있습니다.


답변

비슷한 개념을 보시고 3D로 슈퍼 마리오 갤럭시를 보시기 바랍니다.

슈퍼 마리오 갤럭시
https://youtu.be/_8eJC4gIAm4?t=19m

짧은 이동에서 참조 프레임은 동일하게 유지되고, 유니버스는 움직이지 않으며, 특정 임계 값을 초과하여 유니버스가 따라 이동 / 이동하므로 참조 프레임이 가운데로 돌아갑니다.

이동할 때 유니버스를 “동작 흐림 효과”를 사용하여보다 자연스럽게 보이고 눈이 움직이는 부분 이동 위치에 초점을 맞추지 않도록 할 수 있습니다.

나는 Nintendo가 게임을 가능한 한 매끄럽게 만드는 데 약간의 연구를 투자했다고 가정하고 이것이 그들이 해결 한 것입니다. 저는 항상 더 큰 회사가 무엇을 알아 냈는지 알고 싶어합니다. 최대의 편안함과 연주 성을 위해 R & D에 무언가를 투자하기를 바랍니다.


답변

A/ D을 사용 하여 캐릭터를 행성의 가장 왼쪽 / 가장 오른쪽 방향으로 이동 하고 W/ S를 사용하여 캐릭터를 맨 위 / 가장 낮은 지점으로 이동하십시오.

이런 식으로 플레이어는 항상 캐릭터의 위치와 상관없이 항상 입력 움직임과 같은 방향으로 캐릭터를 움직입니다. 예를 들어 D항상 오른쪽으로 S이동하고 항상 아래로 이동합니다.

키를 누르고있는 동안 게임은 같은 시계 방향으로 계속 진행하거나 제한점에서 캐릭터를 멈출 수 있습니다. 그것이 멈 추면 큰 문제는 아닌 것 같습니다. 플레이어는 같은 시계 방향으로 계속 가고 싶다면 입력을 변경할 수있는 완전한 사분면을 가지고 있습니다.

또한, 원형 WASD또는 WDSA매우 직관적 보인다 행성의 일주에 입력 결과 패턴.

하나 이상의 키를 누르고 있으면 가장 최근에 누른 키가 우선하거나 8 개의 제한점을 갖는 것과 같은보다 복잡한 동작을 사용할 수 있습니다.


답변

이것은 많은 게임에서 겪는 두 가지 고전적인 “멘탈 모델”문제 중 하나입니다.

모든 플레이어는 게임 컨트롤이 게임 액션에 매핑되는 방식에 대한 “멘탈 모델”을 개발합니다. 시간이 지남에 따라 게임의 제어가 점점 더 유사 해짐에 따라 사람들은 별도의 게임을위한 별도의 모델을 개발하는 대신 기존의 정신 모델이 새로운 게임에 적용되기를 기대하기 시작했습니다. 모든 플레이어가 컨트롤이 작동하는 방식에 대해 동일한 정신적 모델을 갖는 것은 아니라는 점을 제외하고는 괜찮을 것입니다.

예를 들어, 다른 고전적인 “멘탈 모델”문제는 조이스틱 (일반적으로 게임 패드의 오른쪽 아날로그 스틱)을 누르는 것이 위를 바라 보는 것인지 또는 앞으로 기울이는 것을 의미하는지 (즉, 아래를 보는 것 )입니다. 두 모델 모두 객관적으로 옳지 는 않지만 대부분의 플레이어는이 두 가지 가능한 매핑 중 하나만 머릿속에 유지하며 게임이 개인적으로 기대 한 것과 다른 일을하면 버려집니다.

당신의 질문은 정확히 같은 딜레마입니다. 여기서 “멘탈 모델”문제는 컨트롤 스틱을 오른쪽으로 밀면 “레지던트 이블에서와 같이 캐릭터의 오른쪽으로 이동”또는 “스크린의 오른쪽으로 이동”(마리오에서와 같이)을 의미하는지 여부입니다. 또는이 경우 “시계 방향으로 이동”(Tempest에서와 같이 패들에서 조이스틱 컨트롤로 기존 변환을 사용하는 경우).

모든 플레이어는 내장 모델을 사용하여 변경하기를 꺼리거나 변경하기가 어렵습니다. 이러한 “mental 모델”문제에는 문제를 처리하는 방법에 대한 세 가지 옵션이 있습니다.

  1. 개발자는 게임에 가장 적합한 모델을 선택하여 사용합니다. 선택한 모델에 문제가있는 사람들의 불만을 무시하십시오. 그들은 적응해야합니다. 그리고 당신의 게임이 충분히 매력적이라면 그들은 할 것입니다.
  2. 가능한 두 가지 모델을 모두 구현하고 플레이어가 원하는 모델을 선택할 수 있도록합니다.
  3. 어떤 정신 모델을 사용하든 컨트롤-> 게임 액션의 매핑이 동일하게 유지되도록 게임을 다시 디자인하십시오.

이 경우 옵션 3 ( “심리 모델이 서로 충돌하지 않도록 게임을 다시 디자인하십시오”)은 플레이어와 함께 카메라를 회전시키는 것을 의미하므로 플레이어는 항상 화면에 똑바로 나타납니다. 이렇게하면 “오른쪽은 시계 방향으로 이동”과 “오른쪽은 화면 오른쪽으로 이동”이라는 의미가 항상 정렬됩니다. 더 이상 갈등이 없으며 컨트롤이 작동하는 방식에 대한 정신 모델에 따라 플레이어가 혼란스러워하지 않습니다.

옵션 2는 두 가지 제어 스타일을 모두 구현하는 것을 의미합니다. 오른쪽을 누르면 화면 오른쪽으로 이동하고, 오른쪽으로 누르면 시계 방향으로 이동하고, 옵션 화면에서 플레이어가 사용하려는 컨트롤 스타일을 선택할 수 있습니다.

여기의 모든 선택은 유효합니다. 다른 옵션은 다른 양의 작업이 필요하며 게임에 다른 제약을 부과합니다. 주제 또는 예술적인 이유로 플레이어가 행성의 “하단”측면에서 움직일 수있는 것이 정말로 중요하다면, 옵션 3을 사용하고 싶지 않으며 1 또는 2를 사용해야합니다. 그렇지 않으면 옵션 3이 이상적인 선택 일 것입니다.

“조이스틱을 오른쪽으로 밀면 화면 오른쪽으로 이동하는 것을 의미합니다.”컨트롤 스타일에 대한 간단한 구현 참고 사항 :이 컨트롤 스타일을 구현할 때는 조이스틱 방향을 시계 방향 / 반 시계 방향으로 선택하여 수행해야합니다. 플레이어가 행성의 바닥으로 이동하더라도 조이스틱이 다시 움직일 때까지 시계 방향 / 반 시계 방향으로 동일한 결정을 유지하십시오. 즉, 행성 위에있는 동안 오른쪽으로 누르거나 행성의 오른쪽에있는 동안 아래로 누르면 캐릭터가 시계 방향으로 움직이기 시작하고 플레이어는 플레이어가 움직일 때까지 행성의 바닥 주위에서도 시계 방향으로 계속 움직입니다. 조이스틱 방향이 다른 방향으로 해석되는 행성의 일부로 이동하더라도 조이스틱이 다시 작동합니다.

이 기술은 종종 조이스틱 컨트롤을 “잠금”이라고하며 일반적으로 카메라가 갑자기 회전 할 때 (플레이어가 갑자기 방향을 바꾸고 싶지 않음) 3D 게임에서 사용되지만 여기서도 유용 할 수 있습니다. 카메라 움직임으로 인해 플레이어의 수정되지 않은 입력이 갑자기 이전과 다른 것을 의미하는 2D 게임.


답변

입력에 W / S / A / D를 사용하십시오 (또는 위 / 아래 / 왼쪽 / 오른쪽). 입력을 8 방향 (대각선 포함)으로 취급하십시오.

그런 다음 유효한 방향 (시계 방향 또는 시계 반대 방향)이 누른 방향과 가장 가까운 방향으로 플레이어를 이동하십시오.