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

libGDX-表格中的图像绘制白色或字体图像,而不是我的资产文件

司马耘豪
2023-03-14

我有一个表和这个表中的图像,但问题是绘制的图像是白色矩形或字体图像(虽然字体的图片不存在于资产文件夹中)而不是纹理。资产文件夹中的纹理是卡片的图像。这可能是由于纹理的大小(约340x500和350kb)。

请帮我解决这个问题。我很想写我的第一个游戏。

public class GameScreen implements Screen {

final Game game;
private Stage stage;
private Table table;
private Image card1, card2, card3, card4, card5, card6;

private Cards cards;

public GameScreen(Game game, Cards cards) {
    this.game = game;
    this.cards = cards;

    stage = new Stage();
    Gdx.input.setInputProcessor(stage);

    card1 = new Image(new Texture(Gdx.files.internal("1.png")));
    card2 = new Image(new Texture(Gdx.files.internal("2.png")));
    card3 = new Image(new Texture(Gdx.files.internal("3.png")));
    card4 = new Image(new Texture(Gdx.files.internal("4.png")));
    card5 = new Image(new Texture(Gdx.files.internal("5.png")));
    card6 = new Image(new Texture(Gdx.files.internal("6.png")));

    table = new Table();
    table.setFillParent(true);
    table.setDebug(true);
    table.add(card1).width(140).height(202).padLeft(15).padRight(15).padBottom(10);
    table.add(card2).width(140).height(202).padBottom(10);
    table.add(card3).width(140).height(202).padLeft(15).padRight(15).padBottom(10).row();
    table.add(card4).width(140).height(202).padLeft(15).padRight(15);
    table.add(card5).width(140).height(202);
    table.add(card6).width(140).height(202).padLeft(15).padRight(15).row();

    stage.addActor(table);
}

@Override
public void show() {

}

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

    stage.act(delta);
    stage.draw();
}

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

}

@Override
public void pause() {

}

@Override
public void resume() {

}

@Override
public void hide() {

}

@Override
public void dispose() {
    stage.dispose();
    mySkin.dispose();
    dixit.getScreen().dispose();
}

共有1个答案

赫连瑾瑜
2023-03-14

从您的屏幕截图中可以看到只有您看到的card2图像,这是很明显的,因为您只设置/赋予card2纹理(我猜这是一个字体图像)。您需要为每个卡片提供纹理(资产文件夹中的.png文件

让您在资产文件夹中拥有1.png、2.png、3.png、4.png文件,现在您必须将它们设置为图像对象。new Image()为您构造一个空白纹理。

在这里,我正在给你的卡设置pngs

card1 = new Image();
    card2 = new Image(new Texture(Gdx.files.internal("12.png")));
    card3 = new Image(new Texture(Gdx.files.internal("1.png")));
    card4 = new Image(new Texture(Gdx.files.internal("2.png")));
    card5 = new Image(new Texture(Gdx.files.internal("3.png")));
    card6 = new Image(new Texture(Gdx.files.internal("4.png")));
 类似资料:
  • loginpage.dart 资产档案包括 错误是 在pubspec中检测到错误。yaml:未找到资产:资产/图像的文件或变体。 失败:构建失败,有一个异常。 > 其中:脚本'C:\Src\flatter\packages\flatter\u tools\gradle\flatter。格雷德尔线:991 错误:任务“:app:compileFlutterBuildDebug”的执行失败。 处理“命

  • 我的迭代器 我的绘图方法

  • 而且,有时它能找到,有时它找不到。

  • 问题内容: 我想将图像列表读入Python / Matplotlib,然后在图形中绘制此图像而不是其他标记(如点)。我曾尝试使用imshow,但未成功,因为我无法将图像移到另一个位置并适当缩放。也许有人有一个好主意:) 问题答案: 有两种方法可以做到这一点。 根据希望的位置,使用带有kwarg集的图像进行绘制。 在里面使用。 第一种方法最容易理解,但是第二种方法具有很大的优势。k注解框方法将使图像

  • 我已经用Python创建了几个绘图,并试图将它们另存为。png文件或PDF。输入数据后,我将使用以下代码创建: 情节也很精彩。然而,每当我使用 plt.savefigSersic_Voids.png 为了保存,它这样做,文件显示在我的电脑上。对于我使用的每次和文件类型,文档都是空白的,没有绘图、轴或任何东西。 编辑1:我已经在使用要保存的格式,但运气不好。我没有plt。show()函数,每个Jup

  • 我尝试使用PDFBox将BuffereImage中的图像绘制到PDF中,但失败了,我得到了黑色图像,Acrobat Reader发出警告,其中有“内存不足”之类的错误(但PDF是显示的)。 我使用BuffereImage是因为我需要将JavaFX图像对象(来自对Functiones.crearImagenDesdeTexto()的调用,是一个将文本转换为图像的函数)绘制成PDF。其余图像在不使用B