Twine 2 (Harlowe)

망고·2023년 9월 17일
0

twine

목록 보기
2/4
post-thumbnail

[Introduce to Twine] 7-10강 스터디

Datamaps

  • datamap : 변수의 이름과 변수가 무엇을 포함할 것인지 정의하는 것이다.
    -> (datamap: "object name", "object details", ...)

책상hook

(set: $bluepaper to (datamap:"name", "파란종이", "description", "파란종이 밑에 글이 쓰여있다.", "pickuptext", "안녕", "isCarried", false))
(set: $selecteditem to "")

datamap의 object name을 활용하여 간단하게 맵을 구사할 수 있다.

  • 텍스트 클릭 후 텍스트 제거하는 방법
(if: $bluepaper's isCarried is false)[(link: "파란종이를 가져간다.")[set: $selecteditem to $bluepaper)(set: $bluepaper's isCarried to true)(goto:"아이템")]]

isCarried가 false라면 "파란종이를 가져간다."라는 문구를 클릭할 수 있는 링크를 만든다. 링크를 클릭하게되면 $selecteditem$bluepaper로 선언이된 후 isCarried는 true가 된다. 그 다음 goto에 의해 아이템hook으로 넘어가게 된다. 이때 아이템hook에는 "파란 색종이를 가져간다."를 선택했을 때 나오는 문구를 입력하면 된다.

아이템hook

(print: $selecteditem's pickuptext)

"파란 색종이를 가져간다."를 클릭했을 때 아이템hook으로 넘어가게 되는데, (print: $selecteditem's pickuptext)을 입력하면 '안녕'의 문구가 나타나게된다.(datamap에서 pickuptext를 "안녕"으로 입력했기 때문이다.)
isCarried는 true가 되었기에 if문에서 빠져나오고 "파란 색종이를 가져간다."라는 문구는 사라지게 된다.

Dynamic Links

  • 정해진 hook으로 이동

정해진 hook으로 이동하기 위해선 게임 시작 초반에 장소변수를 선언한다.

책상hook

(set: $bluepaper to (datamap:"name", "파란종이", "description", "파란종이 밑에 글이 쓰여있다.", "pickuptext", "안녕", "isCarried", false))
(set: $selecteditem to "")
(set: $previouspassage to "")

-> $previouspassage를 선언한다.

주머니hook

(if: $bluepaper's isCarried is true) [(link: "파란종이")[(set:$selceteditem to $bluepaper)(set:$previouspassage to "주머니")(goto:"아이템")]]

아이템hook

(print: $selecteditem's picuptext)

(link: "돌아가기.")[(goto: $previouspassage)] """(link-goto:"돌아간다","$previouspassage")로 바꿔서 사용할 수 있다."""

$previouspassage를 주머니hook에서 "주머니"로 선언했기 때문에 아이템hook에서 "돌아가기."를 클릭했을 때 주머니hook으로 돌아온다.

(link: "돌아간다")[(goto:$previouspassage)](link-goto:"돌아간다","$previouspassage")로 바꿔사용할 수 있다.

url 삽입

  • (ink: "문구")[(goto-url:"url주소")]

0개의 댓글