랜덤화(Randomise)
Randomise 액션은 랜덤 번호 생성기의 "시드(seed)"를 무작위 값으로 설정하는 기능입니다. GameMaker의 랜덤 번호 함수들을 사용할 때, 초기 시드는 항상 동일하게 설정되어 오류 추적 및 디버깅을 쉽게 합니다. 하지만 컴파일된 게임에서는 이러한 동작이 적용되지 않습니다. 만약 진정한 랜덤 값을 테스트하고 싶다면, 게임 시작 시 이 액션을 한 번 호출해야 합니다.
액션 구문 (Action Syntax)
randomize();
예제 (Example)
다음 코드 블록은 랜덤 시드를 새로운 값으로 설정한 후, 0에서 9까지의 숫자를 생성하고 이를 글로벌 변수에 할당합니다.
randomize(); // 랜덤 시드를 새 값으로 설정
var number = random(10); // 0에서 9까지의 랜덤 숫자 생성
global.random_number = number; // 생성된 숫자를 글로벌 변수에 할당
활용 및 응용 예제
1. 게임 내 랜덤 아이템 생성
| 단계 | 설명 |
|---|---|
| 1 | 게임 시작 시 randomize() 호출 |
| 2 | 랜덤 아이템을 선택하기 위해 0에서 3까지의 값을 생성 |
| 3 | 생성된 값에 따라 아이템 할당 |
randomize(); // 랜덤 시드 설정
var item_type = floor(random(4)); // 0, 1, 2, 3 중 하나 선택
switch (item_type) {
case 0:
global.item = "포션"; // 아이템: 포션
break;
case 1:
global.item = "무기"; // 아이템: 무기
break;
case 2:
global.item = "방어구"; // 아이템: 방어구
break;
case 3:
global.item = "골드"; // 아이템: 골드
break;
}
2. 무작위 적 생성
| 단계 | 설명 |
|---|---|
| 1 | 게임 시작 시 randomize() 호출 |
| 2 | 무작위 적의 수를 생성 |
| 3 | 적을 생성하고 게임에 추가 |
randomize(); // 랜덤 시드 설정
var enemy_count = floor(random(5)) + 1; // 1에서 5 사이의 적 생성 수
for (var i = 0; i < enemy_count; i++) {
// 적 생성 로직 (가상의 함수 호출)
create_enemy(i); // 적 생성
}
3. 랜덤 이벤트 발생
| 단계 | 설명 |
|---|---|
| 1 | 게임의 특정 구간에서 randomize() 호출 |
| 2 | 이벤트 발생 여부를 랜덤으로 결정 |
| 3 | 발생한 이벤트에 따른 행동 실행 |
randomize(); // 랜덤 시드 설정
var event_chance = random(1); // 0에서 1 사이의 값 생성
if (event_chance < 0.5) {
// 랜덤 이벤트 실행 (가상의 함수 호출)
trigger_random_event(); // 랜덤 이벤트 발생
}
이처럼 Randomise 액션을 활용하면 다양한 랜덤 요소를 게임에 추가할 수 있습니다. 게임의 재미와 다양성을 높이는 데 유용하게 사용될 수 있습니다.