2013-03-10 4 views
2

나는 파이썬 roguelike에서 계속 발전해 왔고,이 튜토리얼 : http://roguebasin.roguelikedevelopment.org/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod으로 더 깊이 나갔다. 이 게임에서 사용하기 위해 자신 만의 글꼴을 만들었지 만 어떻게해야할지 모르겠습니다. 현재 사용중인 글꼴 이미지에 대한 링크입니다 : http://i.imgur.com/j6FdNky.png. 파이썬 코드에서 사용자 정의 글꼴을 해당 글꼴 이미지 인 'arial10x10.png'로 설정합니다. 내 자신의 글꼴로 이미지를 만들려고했지만 정말 왜곡되었습니다.글꼴 시트 만드는 법 (파이썬 roguelike에서 사용하기)

누구나 내 자신의 글꼴을 구현할 수있는 방법을 알고 있습니까? 또한 libtcod를 사용하고 있으며 .ttf 형식의 고유 글꼴 만 갖고 있습니다. 감사합니다. .

답변

4

트루 타입 글꼴을 libtcod가 예상하는 방식으로 비트 맵으로 렌더링하려면 별도의 라이브러리를 사용해야합니다. 글꼴 렌더링은 놀랍도록 복잡한 작업입니다. FreeType은 글꼴 렌더링을위한 매우 인기있는 오픈 소스 라이브러리입니다. 여기서 파이썬 인터페이스를 찾을 수 있습니다 : http://code.google.com/p/freetype-py/. 실제 게임이 아닌 로게 류을 개발할 때 사용할 툴에서만 FreeType을 사용해야합니다.

먼저 로게 엘크에서 사용할 문자를 결정하십시오. 글꼴 시트에 이러한 문자를 배치하는 방법을 결정하십시오. 또한 게시 한 이미지의 레이아웃과 동일한 레이아웃을 사용하도록 선택할 수도 있습니다.이 레이아웃은 공백 문자 (문자 32)부터 시작하여 32 개의 열이있는 시트입니다.

글꼴 렌더링 라이브러리를 사용하여 각 문자를 원하는 크기로 렌더링하십시오. 각각에 대해 생성 된 크기에주의하십시오 (예 : '.'). 는 작을 것이고 'w'는 같은 폰트 크기 에서조차 커질 것입니다. 단지 높이를 계산해서는 안되며, 기준선보다 높은 높이와 기준선 아래의 높이를 계산해야합니다. (예 : 'A'와 'g'의 높이가 모두 16 픽셀 인 경우 기준선과 기준선을 정확하게 맞추려면 16 픽셀보다 큰 사각형이 필요합니다.) 가장 작은 사각형을 찾습니다. 이 모든 크기를 수용 할 수있는 크기 - 글꼴 시트의 각 셀이 얼마나 커야합니다.

시트의 크기를 알았 으면 원하는 문자를 모두 통과시켜 비트 맵을 구성하고 각 문자를 셀에 넣습니다. y- 포지셔닝이 진행되는 한 모든 기준선을 정렬해야합니다. 일부 문자가 다른 문자보다 넓은 경우 셀의 각 문자를 가운데 맞춤 또는 왼쪽 맞춤으로 선택할 수 있습니다. (이들 각각은 자신의 weirdnesses 함께 올 것이다 - 당신이 정말 로그 류에 대한 고정 폭 폰트를 원하는 것입니다.)

추가 팁 :

  • 사용 안티 앨리어싱을. 이렇게하면 단색 글꼴 인 보다 눈에 쉽게 글꼴을 표시 할 수 있습니다.
  • 색상을 사용하지 말고 글꼴을 회색 음영으로 렌더링하십시오. libtcod에는 그레이 스케일의 컬러 텍스트를 생성하는 기능이 있습니다.
  • 정사각형 글꼴 사용 여부를 고려하십시오. 정사각형 글꼴의 장점은 로긴 한 세계의 "서클"이 인 것처럼 보일 것입니다. 단점은 사각형 글꼴이 인데 일반적으로 "못 생기고"읽기가 더 어렵습니다.
+0

PIL은'ImageFont'로 글꼴을 멋지게 표현합니다. – nneonneo

+0

답장을 보내 주셔서 감사합니다! 나는 기회가있을 때 이것을 시험해 볼 것이다. –