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

LibGDX从base64 PNG ByteArrayInputStream创建纹理

武晨
2023-03-14

我刚刚决定将Slick2D改为libgdx。然而,为了能够将我的游戏移植到LibGDX,我需要帮助理解如何从我的游戏数据文件在LibGDX中创建纹理。

我的游戏数据文件是加密的,图像是用base64编码的,所以我可以把它们都保存在一个txt文件中。如何从ByteArrayInputStream创建LibGDX纹理。

编辑:我刚刚想通了,有点。我是这样做的:

   Texture bucket;
    String base64 = "base64 string too long to paste"
    byte[] decodedBytes = Base64Coder.decode(base64);
    bucket = new Texture(new Pixmap(decodedBytes, 0, decodedBytes.length));

然而,现在图像是垂直翻转的...我是不是漏掉了什么?

共有1个答案

常枫涟
2023-03-14
Texture bucket;
String base64 = "base64 string too long to paste"
byte[] decodedBytes = Base64Coder.decode(base64);
bucket = new Texture(new Pixmap(decodedBytes, 0, decodedBytes.length));

对我有效。

它被翻转了,因为我把OrthgraphicsCamera改成了左上角的0,0。

 类似资料:
  • 如果我创建一个.png 1024 x 1024的纹理,并在中间画一个124 x 124的圆,它的周围将是空的,它使用的RAM是否与我在124x124空间上画一个124 x 124的圆相同?

  • 我希望你能帮我找到错误。干杯,Joshflux 编辑:我很确定,它必须做一些事情与窗口的大小。如果我将窗口的高度从800调整为200,那么左角的人看起来是一样的,但是中间的人要小得多。但还是不知道怎么解决...

  • 通过纹理贴图加载器TextureLoader的load()方法加载一张图片可以返回一个纹理对象Texture,纹理对象Texture可以作为模型材质颜色贴图.map属性的值。 材质的颜色贴图属性.map设置后,模型会从纹理贴图上采集像素值,这时候一般来说不需要再设置材质颜色.color。.map贴图之所以称之为颜色贴图就是因为网格模型会获得颜色贴图的颜色值RGB。 // 纹理贴图映射到一个矩形平面

  • 再详细一点。我不使用Block2D。瓦片大小由8x8缩放为20x20。使用没有填充的texturepacker(无论如何填充都会出现问题)。我不知道该发布哪段代码,因为我不知道问题可能出在哪里,所以这里只是简单的块类。如果有任何帮助,我将不胜感激,谢谢。

  • 我用libgdx和box2d做卡车游戏。在我的游戏中,1米=100像素。我的2D地形是由我生成的,是由点制作的。 我所做的,是为整个多边形创建一个polygonregion并使用texturewrap.repeat。问题是,我的游戏大小被缩小了100倍,以适应box2d单位。 所以我的相机宽度是800/100,高度是480/100。(8x4.8像素)

  • 我试图用lwjgl创建一个简单的OpenGL程序,但目前我还停留在创建纹理渲染上。 我得到的错误是一个分段错误: 机器信息: 有问题的JVM线程堆栈: 最后是我处理纹理创建的代码: 我创建的图像类工作得很好,我使用的示例图像是2 x 2像素,并且具有12字节长度的内部缓冲区,因此segvault不应该由太短的缓冲区引起。