배열 함수

배열과 관련된 몇 가지 함수가 있습니다. 이러한 함수들은 코드에서 유연성을 제공하며, 게임을 만들 때 더 기능적이고 동적인 배열을 생성할 수 있도록 도와줍니다.

기본 배열 함수

함수 이름 설명
array_create 새로운 배열을 생성합니다.
array_copy 배열을 복사합니다.
array_equals 두 배열이 같은지 비교합니다.
array_get 배열의 특정 인덱스에 있는 값을 가져옵니다.
array_set 배열의 특정 인덱스에 값을 설정합니다.
array_push 배열의 끝에 값을 추가합니다.
array_pop 배열의 마지막 값을 제거하고 반환합니다.
array_shift 배열의 첫 번째 값을 제거하고 반환합니다.
array_insert 배열의 특정 위치에 값을 삽입합니다.
array_delete 배열의 특정 인덱스의 값을 삭제합니다.
array_get_index 특정 값의 인덱스를 찾습니다.
array_contains 배열에 특정 값이 포함되어 있는지 확인합니다.
array_contains_ext 배열에 특정 값이 포함되어 있는지 확인합니다 (확장).
array_sort 배열을 정렬합니다.
array_reverse 배열의 순서를 반전합니다.
array_shuffle 배열의 요소를 무작위로 섞습니다.
array_length 배열의 길이를 반환합니다.
array_resize 배열의 크기를 조정합니다.
array_length_1d 1차원 배열의 길이를 반환합니다.
array_length_2d 2차원 배열의 길이를 반환합니다.
array_height_2d 2차원 배열의 높이를 반환합니다.
array_first 배열의 첫 번째 요소를 반환합니다.
array_last 배열의 마지막 요소를 반환합니다.

고급 배열 함수

함수 이름 설명
array_find_index 조건에 맞는 요소의 인덱스를 찾습니다.
array_any 배열의 요소 중 하나라도 조건을 만족하는지 확인합니다.
array_all 배열의 모든 요소가 조건을 만족하는지 확인합니다.
array_foreach 배열의 각 요소에 대해 함수를 실행합니다.
array_reduce 배열의 요소를 누적하여 단일 값으로 만듭니다.
array_concat 두 배열을 연결합니다.
array_union 두 배열의 합집합을 구합니다.
array_intersection 두 배열의 교집합을 구합니다.
array_filter 조건에 맞는 요소만 포함한 배열을 반환합니다.
array_map 배열의 각 요소에 함수를 적용합니다.
array_unique 중복된 요소를 제거한 배열을 반환합니다.
array_copy_while 조건을 만족하는 요소를 복사합니다.

확장 배열 함수

함수 이름 설명
array_create_ext 확장된 배열을 생성합니다.
array_filter_ext 확장된 조건으로 배열을 필터링합니다.
array_map_ext 확장된 함수를 배열에 적용합니다.
array_unique_ext 확장된 중복 제거를 수행합니다.
array_reverse_ext 확장된 배열의 순서를 반전합니다.
array_shuffle_ext 확장된 배열의 요소를 무작위로 섞습니다.

콜백 메서드

콜백 메서드는 array_foreach와 같은 배열 함수에 전달됩니다. GameMaker는 주어진 배열의 각 요소에 대해 콜백 메서드를 실행합니다. 배열의 각 요소에 대해 두 개의 인수를 콜백 메서드에 전달합니다:

  • 배열 요소의 값
  • 배열 요소의 인덱스

콜백 메서드에서 이러한 인수를 사용하여 반환 값을 계산할 수 있습니다. 예를 들어, array_map과 같은 함수에서 필요할 수 있습니다. 콜백 메서드가 각 요소에 대해 반환하는 값에 따라 결과 값이나 수정된 배열이 반환됩니다. 그러나 _ext 함수 중 하나를 사용하는 경우 원래 배열이 수정됩니다.

프레디케이트 메서드

콜백 메서드가 true 또는 false만 반환해야 할 때, 이를 프레디케이트 메서드라고 합니다. 프레디케이트는 배열의 요소가 조건을 만족하는지 여부를 판단하는 데 사용됩니다.

예제: 프레디케이트

배열에 문자열 "apple"이 포함되어 있는지 확인하는 프레디케이트 메서드를 만들어 보겠습니다. 이를 위해 array_any 함수를 사용합니다:

var _array = ["apple", "banana", "coconut", "dragonfruit"];
var _contains_apple = array_any(_array, function(_val, _ind) {
    return _val == "apple";
});
show_debug_message(_contains_apple); // 1 (true) 출력

우리의 프레디케이트 메서드는 _val == "apple"을 확인하고 결과를 반환합니다. 배열의 요소 중 하나라도 이 조건이 참이면 array_anytrue를 반환합니다.

기본적으로 프레디케이트 메서드는 배열의 모든 요소에서 실행되지만, 대부분의 고급 배열 함수는 두 개의 추가 매개변수인 offsetlength를 받습니다.

오프셋과 길이

offsetlength 매개변수를 사용하면 함수가 배열의 어떤 부분을 살펴볼지, 어떤 방향으로 진행할지를 결정할 수 있습니다 (앞으로 또는 뒤로).

  • offset은 함수가 배열에서 작업을 시작하는 0 기반 인덱스입니다.
  • offset은 음수일 수 있으며, 이 경우 배열의 끝에서 시작합니다. 예를 들어, -1은 배열의 마지막 요소를 참조하고, -2는 두 번째 마지막 요소를 참조합니다.
  • lengthoffset에서 시작하여 배열에서 확인할 요소의 수입니다. length도 음수일 수 있으며, 이 경우 함수는 뒤로 작업합니다. 예를 들어, offset3이고 length3이면 요소 3, 4, 5가 포함됩니다. length-3이면 요소 3, 2, 1이 포함됩니다.

infinity 또는 -infinitylength로 사용하여 배열의 끝이나 시작까지 탐색할 수 있습니다. 함수가 수정된 배열을 반환하는 경우, 작업된 요소만 반환되며, 작업된 순서대로 반환됩니다. 예를 들어, offset3이고 length3인 경우, 요소 3, 4, 5가 작업되고 새로운 배열로 반환되며, 나머지 요소는 버려집니다.

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