2017-05-21 10 views
0

그래서 libgdx의 packtpub에서 자습서 서를 통해 프레임 워크의 작동 방식을 배우고 있습니다. 어쨌든,이 시점까지는 아무런 문제가 없었습니다. 로드 할 BitmapFont를 얻으려고합니다. 그리고 내가하는 일과 관계없이 그것이 거기에 없다는 것을 알려줍니다. 다음은 코드입니다. com.badlogic.gdx.utils.GdxRuntimeException :Gdx.files.internal() 내 .fnt 파일을로드하지 않음

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Error loading font file: images/vcr.fnt 
at com.badlogic.gdx.graphics.g2d.BitmapFont$BitmapFontData.load(BitmapFont.java:667) 
at com.badlogic.gdx.graphics.g2d.BitmapFont$BitmapFontData.<init>(BitmapFont.java:481) 
at com.badlogic.gdx.graphics.g2d.BitmapFont.<init>(BitmapFont.java:116) 
at com.dijdesign.libgdx.game.util.Assets$AssetFonts.<init>(Assets.java:41) 
at com.dijdesign.libgdx.game.util.Assets.init(Assets.java:79) 
at com.dijdesign.libgdx.game.CanyonBunnyMain.create(CanyonBunnyMain.java:25) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:149) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126) 

에 의해 발생 : 없음 :

 public AssetFonts(){ 
     //Create 3 Fonts using VCRFONT 
     defaultSmall = new BitmapFont(Gdx.files.internal("images/vcr.fnt"), true); 
     defaultNormal = new BitmapFont(Gdx.files.internal("images/vcr.fnt"), true); 
     defaultBig = new BitmapFont(Gdx.files.internal("images/vcr.fnt"), true); 

나는이 예외 오류가 무엇입니까 파일을

이, 나는에 매우 실망했다입니다

글꼴 파일뿐만 아니라 편집, 내가 편집 한 두 가지 정보 얼굴에서 그냥 삭제했다 = & & 페이지 ID = 필드는 여기에 그 코드입니다;

info face="" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 

님은 lineHeight = 80 기재 = 26 scaleW = 128 scaleH = 64 페이지 = 1 팩 = 0 alphaChnl = 1 redChnl = 0 greenChnl = 0 blueChnl = 0 페이지 ID = 0 인 파일 = ""

나는 이와 비슷한 다른 답을 보면서 시간을 보냈지 만 제대로 작동하지는 않습니다. 누군가가 위대한 도움을 줄 수있는 방법을 알고 있다면 저에게 올바른 답을 알려주는 데 도움이되는 것이 무엇인지 물어보십시오. 또는 내 문제를 해결하는 질문을 알고 있다면 알려주십시오. 또한 내가 사용하고있는 책에 관심이 있다면 LibGDX 게임 개발 2 판을 배우는 중이고 5 부에 있습니다.

감사합니다.

답변

0

.fnt 파일은 렌더링 할 이미지 파일 없이는 작동하지 않습니다. 붙여 넣은 항목은 여기에서 서식이 잘못되었지만 .fnt 파일에 file=""이있는 것 같습니다. 그러면 오류 만 발생합니다. 나는이 특정한 .fnt 파일을 어디서 얻었는지 모르지만 .fnt와 (보통) .png 파트가 있어야하며, .fnt는 이전 파일 섹션의 .png에 대한 참조를 가지고 있습니다. 같은 폴더에 해당 png가있는 경우 file="vcr.png"과 같은 폴더는 .fnt로 까다로울 수 있으며 .fnt와 .png를 libGDX assets 디렉토리의 기본 폴더와 동일하게 유지하는 것이 좋습니다. (종종 assets은 Android 프로젝트에 있거나, 그렇지 않으면 코어에 있습니다.) Android 프로젝트가 있음). 다른 fnt 파일을 사용하여 자신의 영상에 더 잘 어울리는 지 확인하려면 (또는 그냥 작동하는 경우) 배포 용으로 in this folder of a GitHub repo 몇 개를 유지해야합니다. 파일이 어디에서 왔는지에 관계없이 .fnt와 .png가 일치하는지 확실히 확인해야합니다.

제쳐두고 동일한 .fnt에서 3 개의 다른 BitmapFont 파일을 만들면 이미지의 이미지는 변경되지 않지만 나중에 해당 BitmapFont를 확대하면 이미지의 각 픽셀을 특정 글꼴에 대해 더 크게 표시 할 수 있습니다 . Hiero, at the bottom of this page 같은 도구를 사용하여 BitmapFont의 여러 크기를 생성하는 것이 일반적입니다. 더 큰 글꼴에서 세부 묘사를 높이거나 런타임에 올바른 크기의 글꼴을 생성하기 위해 FreeTypeFontGenerator를 사용하는 libGDX에 익숙해지면 좋습니다. 개인적으로 필자는 거리 필드 글꼴을 사용하여 매끄럽게 확장하고 (쉽게 시작할 수있는 쉬운 기술은 아니지만 텍스트가 많은 게임에서 멋지게 보임) 의도적으로 역순으로 이동하여 정수 단위로 글꼴 크기를 조정합니다 (두 배, 세 배 크기 등이 있지만 픽셀 글꼴로 인해 불규칙한 배율이 생길 수 있으므로 150 %가 아님).

+0

또한 'page id = 0'을 삭제했다고 말했기 때문에 .fnt 파일의 필수 부분 일 수 있으므로 제거하지 않아야하며 아마 올바른 이미지를 찾을 필요가있을 것입니다. 글꼴. 나는 '얼굴'이 제거하는 것이 안전한지 여부를 모르며, 그것이 외계인인지 확인하지 않고 제거 할 수 있다고 가정하는 것은 좋지 않습니다. – notostraca

+0

와우! 고마워, 나는 shoebox를 사용하여 my.fnts 그리고 그들을 엉망으로 만들었습니다. 나는 Heiro를 사용하고 싶었지 만, 내 삶을 위해 그것을 찾지 못했습니다! 저에게 그것을 연결해 주셔서 고마워요, 나는 지금 일하고 있어요! –