ds_grid_shuffle 함수 설명
ds_grid_shuffle
함수는 그리드 내 모든 셀의 값을 무작위로 섞는 데 사용됩니다. 이 함수는 게임이 새로 실행될 때마다 동일한 위치로 셀을 섞기 때문에, 디버깅을 쉽게 하기 위해 GameMaker가 매번 동일한 초기 랜덤 시드를 생성합니다. 이 동작을 피하려면 게임 시작 시 randomise()
함수를 사용해야 합니다. 이 현상은 게임을 테스트하고 디버깅할 때만 해당되며, 최종 실행 파일에서는 매번 무작위로 동작합니다.
구문
ds_grid_shuffle(index);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
index | DS Grid | 섞을 그리드의 핸들 |
반환값
- N/A
예제
ds_grid_shuffle(grid);
위 코드는 변수 "grid"에 인덱스된 DS 그리드의 모든 값을 섞어 다른 순서를 얻습니다.
활용 예제
- 게임 내 아이템 배치
gml // 아이템을 무작위로 배치하기 var grid = ds_grid_create(5, 5); // 그리드에 아이템 추가 ds_grid_set(grid, 0, 0, "아이템1"); ds_grid_set(grid, 0, 1, "아이템2"); ds_grid_set(grid, 0, 2, "아이템3"); // 그리드 섞기 ds_grid_shuffle(grid);
- 퍼즐 게임에서 조각 섞기
gml // 퍼즐 조각을 무작위로 섞기 var puzzle_grid = ds_grid_create(3, 3); // 퍼즐 조각 추가 ds_grid_set(puzzle_grid, 0, 0, "조각1"); ds_grid_set(puzzle_grid, 0, 1, "조각2"); ds_grid_set(puzzle_grid, 0, 2, "조각3"); // 조각 섞기 ds_grid_shuffle(puzzle_grid);
- 랜덤 퀘스트 생성
gml // 퀘스트를 무작위로 섞기 var quest_grid = ds_grid_create(4, 4); // 퀘스트 추가 ds_grid_set(quest_grid, 0, 0, "퀘스트1"); ds_grid_set(quest_grid, 0, 1, "퀘스트2"); ds_grid_set(quest_grid, 0, 2, "퀘스트3"); // 퀘스트 섞기 ds_grid_shuffle(quest_grid);
- AI 행동 패턴 무작위화
gml // AI 행동 패턴을 무작위로 섞기 var ai_grid = ds_grid_create(2, 2); // 행동 패턴 추가 ds_grid_set(ai_grid, 0, 0, "공격"); ds_grid_set(ai_grid, 0, 1, "방어"); // 행동 패턴 섞기 ds_grid_shuffle(ai_grid);
- 카드 게임에서 카드 섞기
gml // 카드 무작위로 섞기 var card_grid = ds_grid_create(4, 13); // 카드 추가 ds_grid_set(card_grid, 0, 0, "하트A"); ds_grid_set(card_grid, 0, 1, "하트2"); // 카드 섞기 ds_grid_shuffle(card_grid);
이와 같이 ds_grid_shuffle
함수를 활용하여 다양한 게임 내 요소를 무작위로 섞어 보다 흥미로운 게임 경험을 제공할 수 있습니다.