참고글:
https://arca.live/b/textgame/9442611
위 링크에서 PRINTW계 명령어를 사용할 경우는 위의 방법들을 적용하기 힘들다는 지적이 있어 만들어봄
@PRINTER(TEXT)
#DIMS DYNAMIC TEXT
#DIM DYNAMIC STRSTART
#DIM DYNAMIC STREND
#DIM DYNAMIC STRLENGTH
STRLENGTH = STRLENSU(TEXT)
WHILE 1
STREND = STRFINDU(TEXT, "\t", STRSTART)
SIF STREND < 0
BREAK
PRINTSW SUBSTRINGU(TEXT, STRSTART, STREND - STRSTART)
STRSTART = STREND + 1
WEND
PRINTS SUBSTRINGU(TEXT, STRSTART, STRLENGTH - STRSTART)
사용은 다음과 같이 하면 됨
@SYSTEM_TITLE
#DIMS TEXT
{
TEXT '=
@"내가 그의 이름을 불러주기 전에는\n" +
@"그는 다만\n" +
@"하나의 몸짓에 지나지 않았다\t" +
@"내가 그의 이름을 불러주었을 때,\n" +
@"그는 나에게로 와서\n" +
@"꽃이 되었다.\t"
}
CALL PRINTER, TEXT
큰따옴표 앞에 @를 붙인건 문자열식(PRINTFORM에서 쓰는 %%같은게 포함된 문자열)에도 대응시키기 위해서임. 그런거 없으면 떼도 무방함
이렇게 하면
이렇게 \n으로 끝나는 문장은 PRINTL처럼 줄바꿈되고, \t로 끝나는 문장은 PRINTW계 명령어처럼 일시정지하게 됨.
※주의: \t는 탭 기호임. 키보드의 Caps Lock 위에 있는 그 탭 맞음. 이 탭은 원래 특정 위치에 도달할 때까지 공백을 채워주는 것으로 알고 있을텐데, 에라는 이 기능이 비활성화되어있음.
그래서 실제로 써보면
이 둘 중 어느 방법을 택하든간에
이런 식으로 뜬금없이 동그라미를 출력하게 됨. 그래서 이 기능을 쓰지 않을 거라고 생각해 \t를 제어 문자로 정한거임.
따라서 자신이 일반 구문에 \t를 넣었다면 이 함수를 사용할 때 이상한 곳에서 일시정지할 수 있으니 조심.