GameMaker강좌[GMS2]/GMS2기초강좌

[게임메이커 강좌-기초][GMS2] 문자열

타락카얀 2023. 12. 30. 10:28
728x90

 

 

GAME MAKER 강좌

 

KAYAN

 

 

 

 

 

 

◈ 문자열

 

 

문자열은 두개의 따옴표(' ' 또는 " ") 안에 글자를 작성하면 문자열로 취급합니다.


    var test = "Hello, World"

문자열과 숫자는 데이터 처리가 다르기 때문에 구분해서 코딩을 해야 합니다.

예를 들어, 아래와 같이 문자열과 숫자를 더하면 오류가 발생합니다.


    var test="고양이 " + 3 + "마리"

문자열과 숫자를 더하려면, 숫자를 string(값) 함수를 사용하여 문자열로 전환해야 합니다.


    var test="고양이 " + string(3) + "마리"




   //----- 출력 내용 -----//

   고양이 3마리


문자열에서 줄바꿈을 사용하려면, 줄바꿈 위치에 "\n"를 기입하면 됩니다.


    var test = "Hello,\nWorld"



   //----- 출력 내용 -----//

   Hello,
   World


전체 문자열 앞에 @ 문자를 붙여 멀티 라인의 문자열을 만들 수도 있습니다.


    var test = @"최고의 2D 게임 개발 환경!
   게임 제작에 필요한 모든 것!
   게임메이커로 게임을 만들어 보세요.
   ";


문자열을 사용할 때 문자열의 일부로 따옴표를 포함하려면 문자열을 분리해야 합니다.


   var test = @"Hello " + "\"" + @"World" + "\""



   //----- 출력 내용 -----//

   Hello "World"


 

 

 

 

 

 

 

 

◈ 템플릿 문자열

 

 

템플릿 문자열은 문자열에 괄호 { }를 사용하여 자리를 만들고, 외부값을 지정한 자리에 적용하면,

문자열의 일부로 적용할 수 있는 서식입니다.

 

일반적으로 문자열에 외부 값을 기입하려면 아래와 같이 할 수 있습니다.


   a="포션";
   b=100;

   t=string(a)+"의 가격은 "+string(b)+"입니다.";



   //----- 출력 내용 -----//

   포션의 가격은 100입니다.


string함수로 변수의 값과 문자열을 합치는 방식이죠.

하지만 $를 문자열 앞에 붙이면, 괄호{ }안에 값을 적용하는 서식형태로 좀 더 단순하게 코딩을 할 수 있습니다.


   a="포션";
   b=100;

   t=$"{a}의 가격은 {b}입니다.";




   //----- 출력 내용 -----//

   포션의 가격은 100입니다.


함수로는 string을 기본적으로 사용할 수 있고, 또는 string_ext 함수를 확장해서 사용할 수 있습니다.



   string(value_or_format [, value1, value2, ...])

   - value_or_format : 값

   - [, value1, value2, ...] : [선택 사항] 템플릿 문자에 개별적으로 삽입할 값.
                                          여러개의 값을 지정할 수 있음.







   string_ext(value_or_format [, values_array])

   - value_or_format : 값

   - [, values_array] : [선택 사항] 템플릿 문자에 삽입할 배열.
                                 배열 인덱스 순으로 값이 지정됨.





먼저, 문자열내에 {0}, {1}, {2}.... 형태로 변수를 넣고 싶은 자리를 만들어 문자열로 구성합니다.

다음으로 string 함수의 [value1, value2....]에 자리에 들어갈 값을 순서대로 넣어주면 됩니다.

참고로 {0}번이 첫번째 자리입니다.


    //값을 여러개 직접 지정할 경우

   str=string("{0}(은)는 체력을 {1}(을)를 회복시킵니다.","약초",30);


   또는,


   //배열로 지정할 경우

   var _array=["약초",30]; //배열 인덱스 순으로 값이 지정됨.

   str=string_ext("{0}(은)는 체력을 {1}(을)를 회복시킵니다.",_array);




   //----- 출력 내용 -----//

   약초(은)는 체력을 30(을)를 회복시킵니다.


템플릿 문자열의 자리에 지정할 값이 없으면, 해당 자리의 서식은 무시되고 단순 문자열로 표시됩니다.

예를 들어, 아래와 같이 서로 다른 2개의 자리에 1개의 자릿값만 적용했을 때,


    str=string("{0}(을)를 {1}개 회득했습니다.","체력 포션");




   //----- 출력 내용 -----//

   체력 포션(을)를 {1}개 획득했습니다.


{1}자리에 들어갈 값이 없기 때문에, 1번 자리는 단순 문자열로 적용됩니다.

 

 

 

 

 

 

 

 

 

 

300x250