GameMaker Language에서의 반복문 사용법

GameMaker Language(GML)에서는 여러 가지 방법으로 코드를 반복 실행할 수 있습니다. 가장 간단한 방법은 repeat 문을 사용하는 것입니다. 이 문법은 다음과 같은 형식을 갖습니다:

repeat (<expression>) {
    <statement>;
    <statement>;
    ...
}

repeat 문은 주어진 문장을 표현식의 반올림된 값 만큼 반복 실행합니다.

예를 들어, 다음 코드는 5개의 공을 무작위 위치에 생성합니다:

repeat (5) {
    instance_create_layer(random(400), random(400), "Instances", obj_ball);
}

이렇게 하면 같은 코드를 여러 번 쓰는 것을 피할 수 있으며, 배열을 사용하거나 여러 작업을 세는 등의 용도로 매우 유용합니다.

반복문에서 다중 문장 사용하기

하나의 문장만 사용하는 것이 아니라 중괄호 {} 안에 여러 개의 문장을 묶어서 반복할 수도 있습니다. 예를 들어:

var _x = 32;
repeat (global.p_lives) {
    draw_sprite(spr_heart, 0, _x, 32);
    _x += sprite_get_width(spr_heart);
}

위의 예제는 "lives"라는 전역 변수가 나타내는 만큼의 횟수만큼 중괄호 안의 문장을 반복하며, 각 반복에서 심장 스프라이트를 _x 위치에 그린 후, 스프라이트의 너비만큼 위치를 이동시킵니다.

언제 repeat 문을 사용해야 할까요?

특정 카운트를 유지할 필요 없이 고정된 횟수만큼 문장을 반복하고 싶을 때 repeat 문을 사용하는 것이 좋습니다.

break와 continue 사용하기

repeat 문 안에서 특별한 breakcontinue 문도 사용할 수 있습니다. break를 사용하면 즉시 루프를 종료하고 루프 이후의 코드로 이동합니다. 예를 들어:

var i = 0;
var temp = 0;
repeat (10) {
    temp += array[i];
    if (temp > max_total) {
        break;
    } else {
        i += 1;
    }
}

위 코드는 10개 배열의 값을 반복하고 로컬 변수에 추가합니다. 만약 로컬 변수의 총합이 max_total보다 큰 경우 break를 사용하여 루프를 종료하고, 아니라면 계속 반복합니다.

continue를 사용하는 예제는 다음과 같습니다:

repeat(10){
    var _x = random(room_width);
    var _y = random(room_height);
    if (instance_position(_x, _y, obj_Enemy)) {
        continue;
    }
    instance_create_layer(_x, _y, "Instances", obj_Enemy);
}

이 코드는 10번 반복하며, 각각 무작위 방 위치를 생성하고, 그 위치에 적 객체 obj_Enemy가 이미 존재하는지 확인합니다. 존재한다면 현재 반복을 종료하고 새 반복을 시작하며, 존재하지 않는다면 해당 위치에 적 객체를 생성합니다.

다양한 활용 및 응용 예제

예제 이름 설명 코드 샘플
공 생성 5개의 공을 임의 위치에 생성 gml repeat (5) { instance_create_layer(random(400), random(400), "Instances", obj_ball); }
심장 그리기 전역적인 생명 수 만큼 심장 스프라이트를 그리기 gml var _x = 32; repeat (global.p_lives) { draw_sprite(spr_heart, 0, _x, 32); _x += sprite_get_width(spr_heart); }
배열 합산 배열 값을 합산하고 특정 값 초과 시 종료 gml var i = 0; var temp = 0; repeat (10) { temp += array[i]; if (temp > max_total) { break; } else { i += 1; } }
적 생성 적 객체를 임의 위치에 생성하고 중복 방지 gml repeat(10) { var _x = random(room_width); var _y = random(room_height); if (instance_position(_x, _y, obj_Enemy)) { continue; } instance_create_layer(_x, _y, "Instances", obj_Enemy); }

이러한 반복문들을 활용하여 여러분의 게임 로직을 간편하고 유연하게 구성할 수 있습니다. 추가적인 반복문 사용법에 대해서는 while, do... until, 그리고 for 문에 대한 섹션을 참조하세요.

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