GAME MAKER 강좌
KAYAN
◈ 배열 생성
● array_create(size, [value]) - size : 만들 배열의 크기 - [value] : [선택 사항] 모든 배열 인덱스의 값을 초기화하는데 사용할 값 |
이 함수를 사용하면 주어진 크기의 1차 배열을 만들 수 있습니다.
생성 할 배열의 길이를 함수에 알려 주면 배열에 대한 "핸들"을 반환하여 변수에 할당 할 수 있습니다.
그리고 이 변수를 통해 생성한 배열을 참조하거나 제어할 수 있죠.
이러한 방식으로 생성된 배열은 초기화 값(선택사항)을 지정하지 않으면, 각 항목이 0으로 초기화됩니다.
- 반환값 : Array
예)
instance_array = array_create(100, noone); |
◈ 배열 추가 및 삽입
▣ 주요 목록 ▣
- array_set(variable, index, value) : 지정한 위치에 값 설정 - array_push(variable, value, [value], [value], [etc...]) : 배열 끝에 값 추가 - array_insert(variable, index, value, [value], [value], [etc...]) : 배열 값 삽입 - array_delete(variable, index, number) : 배열 삭제 - array_copy(dest, dest_index, src, src_index, length) : 배열 복사 |
● array_set(variable, index, value) - variable :배열을 보유한 변수 - index : 값을 설정할 배열의 인덱스 - value : 설정할 값 |
이 함수를 사용하면 배열의 인덱스에 값을 설정할 수 있습니다.
이 함수는 다음 패턴에 따라 다차원 배열에도 사용할 수 있습니다.
// 1차 배열 array_set(my_array, 0, 100); // 2차 배열 array_set(my_array[0], 0, 100); // 3차 배열 array_set(my_array[0][0], 0, 100); // 기타... |
- 반환값 : 없음
예)
for (var i = 0; i < 10; ++i;) { array_set(score_array, i, i*100)); } |
위 코드는 주어진 배열의 처음 10개 항목을 값으로 설정합니다.
● array_push(variable, value, [value], [value], [etc...]) - variable : 배열을 보유하는 변수 - value : 배열의 끝에 추가할 값 - [value], [value], [etc...] : [선택 사항] 배열에 추가할 추가 값 |
이 함수를 사용하면 배열 끝에 값을 추가 할 수 있습니다.
- 반환값 : 없음
array_push(score_array, obj_Player1.scr, obj_Player2.scr, obj_Player3.scr, obj_Player4.scr); |
위의 코드는 주어진 배열의 끝에 4개의 값을 추가합니다.
● array_insert(variable, index, value, [value], [value], [etc...]) - variable : 배열을 보유하는 변수 - index : 값을 삽입 할 배열의 인덱스 (위치) - value : 삽입 할 값 - [value], [value], [etc...] : [선택 사항] 배열에 추가할 추가 값 |
이 함수를 사용하면 배열의 주어진 위치에 값을 삽입 할 수 있습니다.
주어진 인덱스가 배열의 길이를 벗어난 경우, 값은 지정된 인덱스에 추가되고,
배열의 마지막 인덱스와 삽입된 인덱스 사이에 있는 모든 공백은 기본값 0으로 설정됩니다.
- 반환값 : 없음
array_insert(my_array, 0, score); |
위의 코드는 my_array 배열의 0 인덱스 위치에 score 값을 추가하는 것입니다.
지정한 위치에 값을 삽입하는 것이기 때문에, 원래 있던 인덱스와 후순위에 있는 인덱스와 값이 뒤로 밀려납니다.
● array_delete(variable, index, number) - variable : 변수 배열을 보유하는 변수. - index : 값을 삭제할 배열의 인덱스(위치). 음수 인덱스는 배열 끝에서부터 계산됩니다. -1의 오프셋은 배열의 마지막 인덱스이고, -2의 오프셋은 마지막 끝에서 두번째 인덱스입니다. - number : 삭제할 값의 개수. 음수는 오프셋 인덱스에서 시작하여 거꾸로 삭제됩니다. |
이 함수를 사용하면 주어진 위치에 있는 인덱스와 값을 삭제할 수 있습니다.
인덱스가 삭제된 만큼 배열의 길이도 줄어듭니다.
- 반환값 : 없음
array_delete(score_array, 0, 10); |
위의 코드는 score_array 배열의 인덱스 0에서부터 인덱스 9까지 지정된 배열의 모든 값을 삭제합니다.
● array_copy(dest, dest_index, src, src_index, length) - dest : 저장할 배열의 ID - dest_index : 저장할 배열 내의 인덱스. 음수 인덱스는 배열 끝에서부터 계산됩니다. - src : 복사할 원본 배열의 ID - src_index : 원본 배열에서 복사를 시작할 인덱스. 음수 인덱스는 배열 끝에서부터 계산됩니다. - length : 원본 배열에서 복사할 길이 (배열 인덱스 개수). 음수는 오프셋 인덱스에서 시작하여 거꾸로 복사합니다. |
이 기능을 사용하면 배열의 전체, 또는, 일부를 임의의 위치에있는 다른 배열로 복사 할 수 있습니다.
복사중인 데이터가 대상 배열의 길이를 초과하면 배열이 확장되어 데이터를 수용(배열의 길이도 그 만큼 늘어남)합니다.
이 함수는 다음과 같이, 다차원 배열에도 사용할 수 있습니다.
// 2차 배열을 1차 배열로 복사하기 array_copy(item_array, 0, inventory_array[0], 0, len); // 1차 배열을 3차 배열로 복사하기 array_copy(item_array[0][0], 0, inventory_array, 0, len); |
- 반환값 : 없음
예)
if !array_equals(inventory_array, item_array) { var len = array_length(inventory_array); array_copy(item_array, 0, inventory_array, 0, len); } |
위의 코드는 array_equals를 사용하여 두 개의 배열을 검사하여 동일한 값을 보유하는지 확인합니다.
그렇지 않은 경우 코드는 Inventory_array 배열의 전체 내용을 item_array 배열로 복사합니다.
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] 배열 함수-배열의 길이 (0) | 2023.12.31 |
---|---|
[게임메이커 강좌-기초][GMS2] 배열 함수-배열 검색 (0) | 2023.12.31 |
[게임메이커 강좌-기초][GMS2] 배열 (3) | 2023.12.31 |
[게임메이커 강좌-기초][GMS2] 문자열 분할하기 (1) | 2023.12.30 |
[게임메이커 강좌-기초][GMS2] 문자열 (1) | 2023.12.30 |
댓글