Read Buffer (읽기 버퍼)
이 문서는 이전에 생성된 버퍼에서 데이터를 읽어오는 방법에 대해 설명합니다. 이 기능을 사용하면 고유한 버퍼 ID 값을 제공하고, 반환된 값을 저장할 변수를 지정할 수 있습니다. 변수를 임시 로컬 변수로 설정하면 이벤트 또는 액션 스크립트가 끝날 때 해당 변수가 자동으로 생성되고 삭제됩니다.
모든 데이터는 문자열로 반환되므로, 실제 숫자를 저장한 경우에는 데이터 유형 작업을 사용하여 문자열을 값으로 변환해야 합니다. 버퍼는 순차적으로 읽고 쓰기 때문에 버퍼에서 읽으면 "탐색" 위치가 다음 항목으로 이동합니다. 그러므로 다양한 데이터를 읽으려면 필요한 만큼 이 작업을 호출하고, 각 반환된 데이터를 변수에 저장하면 됩니다.
액션 문법
인수 설명
| 인수 | 설명 |
|---|---|
| Buffer | 버퍼 인덱스 (변수에 저장됨) |
| Target | 반환된 데이터를 저장할 대상 변수 |
예제
아래의 액션 블록 코드는 버퍼 읽기/쓰기 위치를 버퍼의 시작으로 설정한 다음, 두 개의 데이타를 읽어서 임시 로컬 변수에 문자열 형식으로 저장합니다. 이러한 변수는 이후에 화면에 데이터를 그리는 데 사용됩니다.
// 버퍼 ID 값 설정
var buffer_id = 1;
// 버퍼에서 데이터 읽기
var data1 = "";
var data2 = "";
// 버퍼의 시작에서 두 개의 데이터 읽기
data1 = buffer_read(buffer_id);
data2 = buffer_read(buffer_id);
// 데이터 화면 출력
draw_text(50, 50, "Data 1: " + string(data1));
draw_text(50, 70, "Data 2: " + string(data2));
응용 예제
1. 게임 설정 저장 및 불러오기
게임 설정이나 플레이어 데이터 같은 정보를 저장하고 불러오는 데 사용할 수 있습니다. 이를 통해 플레이어가 게임을 종료한 후에도 이전 설정을 유지할 수 있습니다.
// 플레이어 데이터 저장
var player_buffer = create_buffer();
buffer_write(player_buffer, player_score);
buffer_write(player_buffer, player_health);
// 플레이어 데이터 로드
var loaded_score = buffer_read(player_buffer);
var loaded_health = buffer_read(player_buffer);
// 화면에 로드한 데이터 출력
draw_text(100, 100, "Loaded Score: " + string(loaded_score));
draw_text(100, 130, "Loaded Health: " + string(loaded_health));
2. 리더블한 데이터 로그 시스템
게임 내에서 발생하는 이벤트나 데이터 변화를 로그하는 시스템을 만들어 디버깅 및 분석에 사용할 수 있습니다.
// 이벤트 로그를 위한 버퍼 생성
var event_buffer = create_buffer();
// 이벤트 기록
buffer_write(event_buffer, "Enemy Appeared");
buffer_write(event_buffer, "Player Advanced to Level 2");
// 로그 읽기
var event1 = buffer_read(event_buffer);
var event2 = buffer_read(event_buffer);
// 로그 출력
draw_text(200, 200, "Event 1: " + event1);
draw_text(200, 230, "Event 2: " + event2);
이러한 예제들을 통해 버퍼를 잘 활용하면 게임의 데이터 관리와 흐름을 효율적으로 제어할 수 있습니다.