2013-07-26 1 views
2

2D XNA 기반 하향식 해킹 프로젝트의 일부분에 내가 필요한 곳에서 작업 중입니다. 텍스트를 화면에 그립니다. 내가 사용하고자하는 것은 SpriteSheet-esque 이미지입니다.이 프로젝트에서 필자가 필요로하는 문자와 기호로 발견되었습니다.이미지를 XNA의 글꼴로 사용하기 (SpriteFont? 아니면 다른 것?)

지금까지 묻기 전에 약간의 내용을 읽었습니다. "Font"나 다른 것을 화면에 두는 유일한 방법은 이미 컴퓨터에 설치된 글꼴을 사용하는 것입니다. this, 사용자 지정 콘텐츠 프로세서를 만들어야합니까?

제 질문은, 내가 원하는 모든 문자/문자를 가지고있는 이미지 (예 : PNG 형식)가있는 경우 제 2D 게임에서이 문자를 어떻게 사용합니까? 또한 반드시 XNA 기반 솔루션 일 필요는 없습니다.

미리 감사드립니다.

답변

2

스프라이트 시트에서 다른 스프라이트를 그리는 방법을 정확히 그립니다.

SpriteBatch.Draw 메서드에 스프라이트 시트의 소스를 나타내는 Rectangle을 사용할 수있는 과부하가 있다는 것을 이미 알고있을 것입니다.

당신이 사전

Dictionary<char, Rectangle> fontDict = new Dictionary<char,Rectangle>(); 
fontDict.Add('A', new Rectangle(/*params representing source of A*/); 

와 스프라이트 사각형 문자에서 관계를 추적 할 수 있으며, 당신이 또는 foreach는 루프 마음에

for(int i = 0; i<str.Count; i++) 
{ 
    Rectangle spriterect = fontDict[str[i]]; 

    SpriteBach.Draw(/*params*/); 
} 

계속하여 말을 할 수 자신의 글자 간격을 관리해야하지만 스스로 할 수도 있습니다.

그것은 그러나 Look like the ContentManager supports creating SpriteFonts based off of image formats such as jpg and png 않습니다, 그래서 당신은 그냥 탐험 더 나을 수도라고 말하고 싶지만 도움이 될 수


더 인터넷 검색을 맺는 FontTextureProcessor Class, 그.

+0

감사합니다. 샘! 마지막 해결책은 수업이 제대로 작동하기 위해 필요한 모든 것을 갖추고 있기 때문에 크게 관심을 갖습니다. 그러나 해당 클래스를 읽으면 스프라이트 시트의 검정색이 투명하게 나타납니다. SpriteSheet의 문자가 검은 색으로 둘러싸여 있기 때문에 해당 FontTextureProcessor 클래스에서 검은 색을 볼 수있는 항목을 볼 수 있습니까? 당신이 제공 한 두 번째 해결책은 제가 현재 사용하고있는 것이기 때문에 제가 쓰려고하는 것에 잘못된 문자를 사용합니다. – Vraad

관련 문제