본문 바로가기

렌파이/시스템 추가하기

렌파이 6.99 이전 버전용 한글 입력기 130331

2015.5.10
렌파이 엔진이 6.99로 업데이트되면서 기본 input 함수로 한글을 입력할 수 있게 되었습니다. 6.99 버전 이전의 엔진을 사용해 게임을 제작하실 때에 한글 입력기를 쓰고 싶으시다면 이 한글입력기를 사용해주세요

Key_hangul_inputter130331.rpy


130331

입력받을 글자 수 length 가 지정된 상태에서 마지막 글자가 완성되지 않았을 때 숫자 및 특수 기호를 입력했을 경우 마지막 한글 글자가 완성됨과 동시에 특수기호가 입력되어 글자 수 제한을 초과하던 현상을 수정했습니다.



사용법

1. 위 코드를 다운로드하시고 프로젝트/game 폴더에 넣어주세요.
2. add 를 이용해서 HangulInput을 추가하세요.

HangulInput 설명

입력받은 텍스트, 그 텍스트에서 마지막 글자의 받침유무를 반환합니다. 스크린 문에서 사용할 땐 저 두 값이 _return 에 저장됩니다. ui. 를 이용할 때는 ui.interact()에서 받을 수 있습니다. 자세한 건 위 예제에 적혀있으니 패스.이 놈이 받은 속성은 다음과 같습니다.

prompt - 입력창 위에 띄울 문자열.
default - 입력창에 기본으로 적혀있을 내용.
length - 입력받을 문자의 최대 갯수.
allow - 입력받을 수 있는 문자가 적힌 문자열.
exclude - 입력할 수 없는 문자가 적힌 문자열. 기본값은 "{}"
style - prompt 에 적용할 스타일. 기본값은 'default'

* 그 외에도 텍스트 스타일 속성을 입력받습니다만 이건 prompt 에 적은 글자에 적용됩니다.
* 입력된 문자에 적용된 스타일은 input 스타일입니다.
*마지막 글자 받침 유무는 조사를 바꾸는 데 편하시라고 넣었습니다. 
'갸라도스은/는 혼란에 빠졌다' 이러면 좀 없어보이잖아여. if 문을 쓰시던가 아님 say_menu_text_filter 를 사용하세요.


주의사항

1. 영문 입력 안 됩니다. 영문 입력은 기존의 input 기능을 이용해주세요.

2. exclude 를 바꾸시는 때에는 {}도 포함시켜주세요. 스크립트에서는 텍스트 태그 여는 기호다보니 오류가 발생할 수도 있습니다. (테스트 해봤을 때는 멀쩡했지만 혹시 모르니..)

3. 위에 적었듯이 입력 문자에 적용된 스타일은 input입니다. 이건 외부에서 어떻게 바꿀 수는 없고 key_hangul_inputter.rpy 파일에서 수정을 하셔야 됩니다. 컨트롤 + f 누르시고 'input' (따옴표 포함)을 검색하면 딱 두 번 사용된 걸 보실 수 있는데, 그 두 개를 수정하시면 됩니다.

이전 버전과 차이점

1. ui.keymap을 안 써서 기존 렌파이 단축키(f, s, m, h)를 제거하지 않았습니다. 고로 다시 추가할 필요도 없습니다.

2. 숫자와 특수기호를 입력할 수 있게 되었습니다.

3. 스크린 문에서 사용할 수 있게 되었습니다(!!) add 를 사용하면 스크린에 추가할 수 있습니다.

3-1. at을 이용해 transform 도 적용할 수 있습니다 ^ㅅ^

4. 방향키는 아무 작동도 안 합니다.

5. allow 와 exclude 속성이 추가되었습니다. 사용법은 기존 input 의 속성과 동일합니다. 다만 한글 글자에는 적용이 안 되니 특문이나 숫자 입력을 막을 때만 사용하세요.
엄밀히 말하면 한글에 적용이 안 된다기 보다는.. 'ㅇ'이 들어간 이름은 절대 안 돼 하시는 분은 'd' 를 입력 못하게 하시면 됩니다. 하지만 변태가 아니고서야 그런 짓을 할 이유는 없을 겁니다.

6. 한글 입력기의 위치는 input 스타일이 아니라 add 에 위치 속성을 입력하면 바꿀 수 있습니다.


뱀다리

파이게임엔 한/영 전환키 keysym이 없습니다. 그래서 그 오른쪽에 있는 알트 키로 대체하려고 했습니다만 반응을 전혀 안 하더군요. 왼쪽 알트키로 대신할까 하다 영문 입력이 필요한가 싶어 그냥 두었습니다.

안드로이드 기기가 없어서 input 이 그쪽에선 어떻게 작동하나 모르겠네요. 원래부터 제대로 된다면야 상관 없겠지만 아니라면 기왕 만든 거 안드로이드 쪽에서도 작동 되면 좋겠지 말입니다.

스크립트 파일 이름은 파일 읽는데 그닥 상관 없으니 맘대로 파일 이름을 바꾸셔도 됩니다.

이렇게 만들어두고 보니 SDL 1.3 이 늦게 나왔으면 싶네요(...)
오작동하면 메일이나 블로그 댓글로 알려주세요.


사용예




아날로그 어 헤이트 스토리의 초반부에서의 한글 Input 사용.