2014-02-08 56 views
1

已解決!!!似乎沒有按比例大小,例如,64x64,128x128libGDX只編譯黑屏

做了一個基本的Hello World,這個編譯好,但當我嘗試獲得一個基本的圖形來顯示,所有顯示的是黑色。基本上按照單詞教程,它似乎仍然在做這個。任何想法的人?

package com.me.mygdxgame; 

import com.badlogic.gdx.ApplicationListener; 
import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.Color; 
import com.badlogic.gdx.graphics.GL10; 
import com.badlogic.gdx.graphics.OrthographicCamera; 
import com.badlogic.gdx.graphics.Texture; 
import com.badlogic.gdx.graphics.Texture.TextureFilter; 
import com.badlogic.gdx.graphics.g2d.BitmapFont; 
import com.badlogic.gdx.graphics.g2d.Sprite; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 
import com.badlogic.gdx.graphics.g2d.TextureRegion; 

public class MyGdxGame implements ApplicationListener { 

SpriteBatch batch; 
BitmapFont font; 
Texture mario; 





    @Override 
    public void create() { 
     mario = new Texture(Gdx.files.internal("mario.jpeg")); 
     batch = new SpriteBatch(); 
     font = new BitmapFont(); 
     font.setColor(Color.CYAN); 
    } 

    @Override 
    public void dispose() { 
     batch.dispose(); 
     font.dispose(); 
    } 

    @Override 
    public void render() {  
     Gdx.gl.glClearColor(1, 1, 1, 1); 
     Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 

     batch.begin(); 
     batch.draw(mario, 200, 200); 
     batch.end(); 

    } 

    @Override 
    public void resize(int width, int height) { 
    } 

    @Override 
    public void pause() { 
    } 

    @Override 
    public void resume() { 
    } 
} 

剛纔意識到出現了一個錯誤代碼。文件名絕對正確。

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: data/mario.png 
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140) 
    at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64) 
    at com.badlogic.gdx.graphics.Texture.load(Texture.java:142) 
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133) 
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:112) 
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:104) 
    at com.me.mygdxgame.MyGdxGame.create(MyGdxGame.java:30) 
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136) 
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114) 
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: data/mario.png (Internal) 
    at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:133) 
    at com.badlogic.gdx.files.FileHandle.length(FileHandle.java:563) 
    at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:218) 
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137) 
    ... 8 more 
+0

batch.draw(mario,200,200);這會使您的紋理呈現(200,200)。你的窗戶大小有多大? – noone

+0

窗口大小設置爲640x480 – CodingNub

+0

確保mario.png文件位於數據目錄中,而不是在資產中。 – Wazani

回答

3

產生的原因:com.badlogic.gdx.utils.GdxRuntimeException:未找到文件:數據/ mario.png(內部)

它不能找到像「馬里奧。 PNG「在數據文件夾中。確保你的android資源文件夾中有圖像(Android項目 - >資產 - >數據 - > mario.png)。

您可能想要了解如何讀取堆棧跟蹤(Big long error report thing),它將爲您節省大量時間。

編輯:Here is link for you on stack-traces

+0

它位於該文件夾中,甚至出現在Android和桌面資產> data_mario.png的資源管理器左側的文件夾中 – CodingNub

+0

資產文件夾中的文件是.png還是.jpeg文件?在你的代碼中它說你想要一個.jpeg,但是錯誤是說.png。 –

+0

我複製的代碼錯了= P修正最終成爲圖像的分辨率。 – CodingNub

2
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: data/mario.png (Internal) 

他找不到mario.png。如果您不使用資產文件夾,我建議您創建另一個包含您所有資源的源文件夾。之後,您可以撥打Gdx.input.classpath(String classpath)從實際導出的.jar中加載文件,而不必硬編碼路徑。