2014-03-25 17 views
0

我學習libgdx,並試圖在屏幕上調用mario.png,但它沒有工作。 我甚至試圖設置文件路徑(「/assets/data/mario.png」),但仍然無法正常工作。 我該怎麼做才能解決這個問題?在線程「LWJGL應用程序」中的異常com.badlogic.gdx.utils.GdxRuntimeException:無法加載文件:mario.png

package com.brandong.Tutorial; 

import com.badlogic.gdx.ApplicationListener; 
import com.badlogic.gdx.Gdx; 
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.Sprite; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 
import com.badlogic.gdx.graphics.g2d.TextureRegion; 
import com.badlogic.gdx.math.Vector2; 

public class Tutorial implements ApplicationListener { 

SpriteBatch batch; 
    Texture mario; 
    Vector2 position; 
    @Override 
    public void create() {  
     batch = new SpriteBatch(); 
     mario = new Texture(Gdx.files.internal("mario.png")); 
     position = new Vector2(50,50); 
    } 

    @Override 
    public void 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, position.x,position.y); 
     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: 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.brandong.Tutorial.Tutorial.create(Tutorial.java:22) 
    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: 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

首先確保您的資產文件夾被標記爲'source'文件夾。如果它是你的android項目的assets文件夾,我認爲它已經被設置爲'source'。下一件事:'Gdx.files.Internal'看起來內部每個源文件夾。這意味着如果你的資產中有一個名爲'data'的文件夾,你必須說「data/mario.png」,而不是「assets/data/mario.png」。還要注意大小寫(區分大小寫)和擴展名(.png,.jpg ...) – Springrbua

+0

我有同樣的錯誤,但已經確保正確定義我的路徑: 'texture = new Texture(Gdx.files 。內部( 「數據/ lstex.png」));」它是在Android項目資產文件夾中,我也清理了我的項目,但我仍然得到相同的錯誤 – Oliver

回答

0

好吧,如果你的文件是( 「/assets/data/mario.png」)以下行

mario = new Texture(Gdx.files.internal("mario.png")); 

改變

mario = new Texture(Gdx.files.internal("data/mario.png")); 
相關問題