Skip to content

Level file format_kr

Onegold11 edited this page Nov 22, 2018 · 2 revisions

이 문서는 Rabbit Escape의 레벨(.rel) 형식을 소개합니다. 게임자체에도 많은 예제들이 있습니다. Easy 레벨은 rabbit-escape-engine/src/rabbitescape/levels/easy을 봐주세요.

그밖에: Creating levels

레벨 파싱을 위한 코드는 LineProcessor.java에 있습니다..

레벨 파일은 3개의 색션인 메타 데이터, 월드, 스타포인트로 이루어져 있습니다.

메타 데이터

메타 데이터는 다음과 같습니다:

:num_rabbits=3
:num_to_save=1
:bash=3

메타 데이터에서 허용된 키들을 TextWorldManip.java에서 보실 수 있습니다.

  • :name: 이름 또는 제목.
  • :description: 설명, 도움 또는 재밌는 것들.
  • :author_name: 레벨 작성자는 Swing 및 안드로이드 UI의 대화 상자에 표시됩니다.
  • :author_url: 작성자는 주소를 선택을 할 수 있습니다..
  • :hint.1: 플레이어가 문제가 생겼을 때 읽을 것들.
  • :hint.2: 더 도움이 필요할 때.
  • :hint.3: 모든 도움.
  • :solution.1: 레벨을 클리어하는 방법을 보여주는 특별한 형식의 명령어 집합입니다. 하나의 파일에 많은 해결법을 허용하기 위해 숫자는 증가됩니다. 올바른 형식으로 해결법을 얻으려면 텍스트 모드로 실행하고 해결법을 다시 보고합니다.
  • :solution.1.code: 솔루션이 애매하게 될 수도 있습니다. 그럴 경우 키에 .code가 추가됩니다. 이것은 힌트없이 레벨 클리어가 가능한지 알 수 있습니다. 힌트 또한 애매하게 되어 있습니다.
  • :num_rabbits: 게임에서 입구를 사용할 토끼의 개수입니다. 월드에서 시작되는 모든 토끼 및 jabbit은 포함되지 않습니다.
  • :num_to_save: 클리어 하기위해 남아 있어야하는 개수입니다.
  • :rabbit_delay: 입구에서 떨어지는 토끼 사이의 시간 차 입니다. 쉼표로 분리된 리스트일 수도 있습니다. 하나의 출입구에서 토끼 간의 간격이 2,1인 레벨의 경우 토끼1 이 들어가고 2의 시간이 지나면 토끼2가 들어가고 1의 시간이 지나면 토끼3이 들어갑니다. 그러면 토끼들 사이의 시간 차가 1이 됩니다.
  • :music: 사운드 트랙. 옵션은 tree/master/music-src을 참조하세요.
  • :num_saved: 지금까지 저장한 횟수 입니다. normal 레벨에서는 사용되지 않습니다.: 0부터 시작합니다.
  • :num_killed: 4칸 이상 떨어지거나 월드 바깥으로 가거나 다른 끔찍한 운명을 겪은 횟수입니다.
  • :num_waiting: 입구를 아직 사용하지 않은 횟수 입니다. normal 레벨에서는 사용되지 않습니다.: num_rabbits부터 시작합니다.
  • :intro: 지원되지 않습니다.
  • :paused: 게임을 일시 정지 합니다.
  • :ready_to_explode_all: 지원되지 않습니다.

%로 시작하는 줄은 주석입니다.

% This will be ignored: you can say what you like.

월드

월드는 레벨에서 유일한 필수 부분으로 완벽한 문자로 이루어져야 합니다.(필요한 경우 공백으로 채우면 모든 줄이 같은 길이가 됩니다.). 예시:

###########
#   Q     #
#\      /##
###########
#         #
#\       O#
###########

다음 문자를 허용합니다:

  • : (스페이스바) 빈 네모 월드.
  • #: 꽉찬 네모 블럭.
  • /: 오른쪽으로 상승하는 경사면.
  • \: 왼쪽으로 상승하는 경사면.
  • (: 오른쪽으로 올라가는 다리.
  • ): 왼쪽으로 올라가는 다리.
  • r: 오른쪽으로 가는 토끼.
  • j: 왼쪽으로 가는 jabbit.
  • Q: 출입구. (왜 Q인지는 모르겠습니다.)
  • O: 탈출구 (out).
  • b: 철거 토큰.
  • d: 굴착 토큰.
  • i: 브릿지 토큰.
  • k: 차단 토큰.
  • c: 등반 토큰.
  • p: 폭파 토큰.
  • *: 스타포인트. 이것은 같은 사격함 안에 여러가지를 설정하는데 사용됩니다.(아래 참조).

스타포인트

스타포인트는 다음과 같습니다:

:*=ccc

:*=에서 원하는 것을 배치합니다.

월드에서 각 *선언에 대해, Rabbit Escape는 스타포인트의 정의를 찾습니다. 왼쪽 위부터 순서대로 행을 정렬하고 오른쪽 아래로 이동합니다. 다음은 예시입니다.

  *
*/#
###
:*=/O
:*=\r

위치3의 스타포인트는 출구 및 상승 슬로프이고 위치4의 스타포인트는 토끼 및 하강 슬로프입니다.

123
456
789

주석

%로 시작하는 줄은 주석입니다. 이것들은 레벨이 시작될 때 영향을 미치지 않습니다. 아이템에 대한 코멘트는 반드시 아이템 위에 적어주세요.

:num_rabbits=3
% It's possible to rescue 2, but I think
% the level is fine requiring 1.
:num_to_save=1
:bash=3

일부 명령 행 옵션은 파일을 로드하고 다시 저장합니다. 이럴 경우 특정 명령에 있지 않으면 아이템을 이동시킬 수 있습니다. 그것들은 아래 아이템과 연관된 주석을 유지합니다. 그것들은 월드의 모든 주석을 ASCII문자 위에 있는 블록으로 옮길 것입니다. 그것들으느 모든 스타포인트 주석을 스타포인트 정의 위의 블록으로 옮길 것입니다.