게임패드 매핑 테스트

이 문서는 게임패드 매핑을 설정하는 방법에 대해 설명합니다. 특정 타겟에서 게임패드 매핑을 설정할 수 있으며, 이를 위해 "슬롯" 인덱스와 매핑 문자열을 제공합니다. 매핑 문자열은 SDL 형식으로 생성되어야 하며, 다음과 같은 필드를 포함해야 합니다:

  • guid: 장치 유형을 고유하게 식별하는 숫자와 문자로 이루어진 문자열 (gamepad_get_guid() 함수를 사용하여 가져올 수 있음)
  • description: 장치에 대한 ASCII 설명 (gamepad_get_description() 함수를 사용하여 가져올 수 있음)
  • platform-name: "platform:android", "platform:windows", "linux", 또는 "mac" 중 하나 (이 값은 자동으로 문자열에 추가되므로 직접 제공할 필요 없음)
  • bindings: 실제 입력을 특정 GML 상수에 바인딩하는 항목의 집합 (','로 구분)

각 항목은 다음과 같은 형식을 따릅니다:

<abstract-gp-name>:<value-binding>

여기서 <value-binding>은 다음 중 하나일 수 있습니다: - a<N>: 게임패드의 축을 나타내며, <N>은 0부터 gamepad_axis_count()-1까지의 값 - b<N>: 게임패드의 버튼을 나타내며, <N>은 0부터 gamepad_button_count()-1까지의 값 - h<N>.<mask>: 게임패드의 해트를 나타내며, <N>은 0부터 gamepad_hat_count()-1까지의 값이고, <mask>는 1, 2, 4, 또는 8 중 하나

각 입력 값은 SDL 이름에 바인딩되며, 이는 GML 상수에 바인딩됩니다. 아래 표는 SDL 이름과 GameMaker 상수 간의 대응 관계를 보여줍니다:

SDL Name GML Name
agp_face1 gp_face1
bgp_face2 gp_face2
xgp_face3 gp_face3
ygp_face4 gp_face4
leftshoulder gp_shoulderl
lefttrigger gp_shoulderl
brightshoulder gp_shoulderr
righttrigger gp_shoulderr
guide gp_select
start gp_start
leftstick gp_stickl
rightstick gp_stickr
dpup gp_padup
dpdown gp_paddown
dpleft gp_padleft
dpright gp_padright
leftx gp_axislh
lefty gp_axislv
rightx gp_axisr
righty gp_axisrv

매핑 문자열을 구성한 후, 다음과 같은 형식이 됩니다:

"050000005e040000fd020000ffff3f00,Xbox Wireless Controller,a:b0,b:b1,start:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:android"

문법

gamepad_test_mapping(index, mapping_string);

인수

인수 유형 설명
index Real 설정할 게임패드 인덱스 "슬롯"
mapping_string String 사용할 매핑 문자열

반환값

N/A

예제

var mapping = gamepad_get_guid(global.padIndex) + "," + gamepad_get_description(global.padIndex);
var len = array_length(global.PadInstances);
for (i = 0; i < len; i += 2) {
    var left = global.PadInstances[i];
    var right = global.PadInstances[i + 1];
    mapping += "," + left.sdlLabel + ":" + right.binding;
}
gamepad_test_mapping(global.padIndex, mapping);

위 코드는 여러 인스턴스를 반복하여 그들이 포함하고 있는 다양한 변수의 값을 사용하여 매핑 문자열을 생성하고, 이를 지정된 슬롯 인덱스의 게임패드에 설정합니다.

활용 예제

// 게임패드 매핑 설정 예제
var mapping1 = "050000005e040000fd020000ffff3f00,Xbox Controller,a:b0,b:b1,platform:windows";
gamepad_test_mapping(0, mapping1);

var mapping2 = "050000005e040000fd020000ffff3f01,PS4 Controller,a:b0,b:b1,platform:android";
gamepad_test_mapping(1, mapping2);

// 여러 게임패드에 대한 매핑 설정
for (var i = 0; i < 2; i++) {
    var mapping = gamepad_get_guid(i) + "," + gamepad_get_description(i);
    gamepad_test_mapping(i, mapping);
}

Read more

기술 문서 해설 및 활용 예제

이 문서는 특정 기술에 대한 설명과 활용 방법을 다룹니다. 아래에서 내용을 쉽게 이해할 수 있도록 해설하고, 다양한 활용 및 응용 예제를 추가로 제공합니다. 기술 개요 이 기술은 게임 개발에서 자주 사용되는 기능으로, 특정 작업을 자동화하거나 효율적으로 처리하는 데 도움을 줍니다. 주로 게임의 로직을 구성하거나 사용자 인터페이스를 제어하는 데 사용됩니다. 주요

By 이재협/실장/시스템개발실/PHYSIA

키워드 설명서

이 문서는 특정 키워드에 대한 설명과 사용법을 제공합니다. 문법 (arguments); 인수 인수 이름 유형 설명 argument_name 인수에 대한 설명을 여기에 작성합니다. 반환값 (선택적 설명) 예제 code_example() { // 여기에 코드 예제를 설명합니다. } 코드 예제 설명 위의 코드 예제는 특정 기능을 수행하는 함수의 기본 구조를 보여줍니다. 이 함수는 인수를 받아들이고, 특정

By 이재협/실장/시스템개발실/PHYSIA

GameMaker 환경 설정 및 기능

이 문서에서는 GameMaker의 환경 설정 및 다양한 IDE 기능에 대한 정보를 제공합니다. 다음은 주요 항목들입니다: IDE 환경 설정 IDE(통합 개발 환경) 설정은 GameMaker의 전반적인 사용 경험을 조정하는 데 도움을 줍니다. 여기서 사용자는 개인의 필요에 맞게 다양한 옵션을 설정할 수 있습니다. 주요 설정 항목 설정 항목 설명 테마 IDE의 색상

By 이재협/실장/시스템개발실/PHYSIA

GameMaker IDE 설명서

GameMaker IDE는 게임을 만들고 소프트웨어에서 제공하는 모든 기능을 활용하는 주요 인터페이스입니다. 이 프로그램은 시작 화면부터 게임을 만들기 위해 사용하는 모든 편집기 창까지 포함되며, 매뉴얼과 다양한 튜토리얼에서 IDE라고 언급됩니다. IDE의 구성 요소 다음 섹션에서는 IDE에 대한 정보를 다룹니다: 1. 설정 및 기능 IDE의 설정 및 기능은 사용자가 게임 개발을 보다 효율적으로

By 이재협/실장/시스템개발실/PHYSIA