Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LibGDX Sprite屏幕未加载图形或加载屏幕_Java_Android_Eclipse_Libgdx - Fatal编程技术网

Java LibGDX Sprite屏幕未加载图形或加载屏幕

Java LibGDX Sprite屏幕未加载图形或加载屏幕,java,android,eclipse,libgdx,Java,Android,Eclipse,Libgdx,我在我的LibGDX项目中遇到了这个问题,我基本上无法加载我的游戏屏幕,我正在关注一个YouTube教程(指向我所在的特定教程的链接:),我发现我的精灵应该出现在我的屏幕上,只是它根本不会加载,它只是打开、关闭然后弹出这个:,我承认我从视频中唯一改变的是: @Override public void render(float delta) { Gdx.gl.glClearColor(1F, 1F, 1F, 1F); Gdx.gl.glClear(GL20.GL_COLOR_BUF

我在我的LibGDX项目中遇到了这个问题,我基本上无法加载我的游戏屏幕,我正在关注一个YouTube教程(指向我所在的特定教程的链接:),我发现我的精灵应该出现在我的屏幕上,只是它根本不会加载,它只是打开、关闭然后弹出这个:,我承认我从视频中唯一改变的是:

@Override
public void render(float delta) {
    Gdx.gl.glClearColor(1F, 1F, 1F, 1F);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    camera.update();    
我将GL10.GL_COLOR_BUFFER_位(在视频中)更改为GL20.GL_COLOR_BUFFER_位,因为它给了我一个错误:GL10无法解析为变量,有人知道为什么吗,告诉我是否有任何需要的信息

提前谢谢

编辑:

游戏屏幕类别:

package com.edac.unforgivingunderground;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;


public class GameScreen implements Screen{

UnforgivingUnderground game;
OrthographicCamera camera;
SpriteBatch batch;

public GameScreen(UnforgivingUnderground game){
    this.game = game;

    camera = new OrthographicCamera();
    camera.setToOrtho(false,1920,1080);

    batch = new SpriteBatch();

} 

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

    camera.update();

}

@Override
public void resize(int width, int height) {
    // TODO Auto-generated method stub

}

@Override
public void show() {
    // TODO Auto-generated method stub

}

@Override
public void hide() {
    // TODO Auto-generated method stub

}

@Override
public void pause() {
    // TODO Auto-generated method stub

}

@Override
public void resume() {
    // TODO Auto-generated method stub

}

@Override
public void dispose() {
    // TODO Auto-generated method stub

}
资产类别:

package com.edac.unforgivingunderground;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.Sprite;

public class Assets {


public static Texture texture_back;
public static Sprite sprite_back;

public static void load(){

    texture_back = new Texture(Gdx.files.internal("logo"));
    texture_back.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    sprite_back = new Sprite(texture_back);
    sprite_back.flip(false, true);
}
}

桌面启动器:

package com.edac.unforgivingunderground.desktop;

import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.edac.unforgivingunderground.UnforgivingUnderground;

public class DesktopLauncher {
public static void main (String[] arg) {
    LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();

    new LwjglApplication(new UnforgivingUnderground(), config);
}
}

主要类别:

package com.edac.unforgivingunderground;

import com.badlogic.gdx.Game;

public class UnforgivingUnderground extends  Game{

public GameScreen game_screen;

@Override
public void create() {
    Assets.load();

    game_screen = new GameScreen(this);

    setScreen(game_screen);

}
不确定它崩溃的原因(您应该发布堆栈转储),但可能是因为这一行:
Gdx.files.internal(“logo”)
。也许你的意思是
logo.png
logo.jpg
。还要确保图像文件确实存在于您的资产文件夹中

另外,我相信您的
渲染
方法缺少一行:

@Override
public void render(float delta) {
    Gdx.gl.glClearColor(1F, 1F, 1F, 1F);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    camera.update();

    Assets.sprite_back.draw(batch);
}

这样,您将通过SpriteBatch将精灵渲染到屏幕上。在你的代码中,你可以看到你没有使用它。

你正在使用的视频已经过时,libgdx已经停止支持OpenGL 1.0和许多其他更改,请输入你的其余代码,以便我们提供帮助。我在中编辑了代码,作为旁注,我对java非常陌生,如果我不了解一些东西,对不起,我对GL10该怎么办?我刚刚意识到上一句话的愚蠢,我后来意识到GL是OpenGL,哈哈,在GL10中是OpenGL ES版本1.0的常量和方法,在GL20中是版本2.0的常量和方法,等等。现在你至少应该使用GL20,这是我的错误。:)