当前位置: 首页 > 知识库问答 >
问题:

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

涂泰平
2023-03-14

我在我的LibGDX项目中遇到了这个问题,我基本上无法加载我的游戏屏幕,我正在关注一个YouTube教程(链接到我所在的特定教程:https://www.youtube.com/watch?v=LSblkR4K1LU),我发现我的精灵应该出现在我的屏幕上,只是它根本不会加载,它只是打开,关闭然后弹出这个:http://puu.sh/coxUv/d877d08a83.png,我承认我从视频中唯一改变的是:

@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_BIT(在视频中),到GL20。GL_COLOR_BUFFER_BIT,因为它给了我一个错误: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);

}

共有1个答案

秦德海
2023-03-14

不确定它崩溃的原因(您应该发布堆栈转储),但可能是因为这一行:Gdx。文件夹。内部(“徽标”)。也许你指的是logo。png徽标。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将精灵呈现到屏幕上。在您的代码中,您可以看到您没有使用它。

 类似资料:
  • 问题内容: 这有点难以解释,所以我会尽力而为 因此,在加载HTML页面时,我希望有一个很酷的加载屏幕在显示。完成加载后,我希望清除加载屏幕并显示HTML文档。 基本上,我想要这样: CSS: HTML: 页面加载时发生的情况。当页面加载时,将被清除,并显示HTML文档的其余部分。(我正在建立一个学分系统,虽然学分加载时我真的很需要它来说它正在加载,但是人们抱怨他们无法单击任何东西,我不得不告诉他们

  • 我使用了“arFragment.getArSceneView.getScene().setOnUpdateListener”。每当我实现我自己的“setOnUpdateListener”时,我都能够显示我的菜单,但这个加载图像不会隐藏。此图像仅在我未实现updateListener时自动隐藏。这是活动_main的片段。来自MainActivity的xml和侦听器。JAVA

  • 背景 我在屏幕上放置了一个图像,用于在屏幕加载其他内容时显示。 我想使图像居中,这样它在所有设备上都是居中的。 问题 目前,图像显示在顶部中心。我希望它也垂直对齐。还要确保它在所有设备上看起来始终相同。 问题 确保图像始终居中并且所有设备的尺寸都正确的解决方案是什么? 例子, 我当前的代码, 在Photoshop中 图像为 300 分辨率 高度为 776 px 宽度为 600 px 我希望图像在所

  • 我在主活动中有以下代码 可扩展置标语言 有时当我打开我的应用程序时,只会显示白屏。我已经使用AsyncTask将数据库从资产文件夹复制到设备,共享首选项将设置字体类型和大小。谁能帮我解决这个问题。谢谢你。 在提出问题之前,我已经阅读了以下问题 Android应用程序启动时的白色背景 android闪屏前几秒钟的白色背景 闪屏活动背景色

  • 我需要提高游戏屏幕加载时间的Android游戏,使用LibGdx游戏引擎。我已经实现了一些类(ImageProvider和SoundManager),它们负责预加载游戏的资产和音频部分。所以,问题是我如何加载这些游戏资源而不影响游戏屏幕之间的加载时间? 我在网上搜索了这个问题,在Stack上发现了一些类似的问题。 如何减少libgdx中所有资产的加载时间 LibGDX中的AssetManager

  • 问题内容: 使用Angularjs,我需要显示一个加载屏幕(一个简单的微调器),直到ajax请求完成为止。请提出带有代码段的任何想法。 问题答案: 与其设置范围变量以指示数据加载状态,不如让指令为您完成所有操作: 使用此伪指令,您需要做的就是为任何加载动画元素提供“加载”属性: 您可以在页面上有多个加载微调器。这些微调框的位置和布局由您决定,指令会自动为您自动打开/关闭。