Java 使用libgdx在运行时使用文本生成纹理
我正在做一个电话文字游戏。昨天,我决定使用libgdx切换到OpenGL,以尝试提高图形性能和电池使用率,从而瞄准更多平台 字母平铺绘图在2D画布上的工作方式是,每个字母平铺都会为自己创建一个位图。我想:Java 使用libgdx在运行时使用文本生成纹理,java,opengl,bitmap,libgdx,pixmap,Java,Opengl,Bitmap,Libgdx,Pixmap,我正在做一个电话文字游戏。昨天,我决定使用libgdx切换到OpenGL,以尝试提高图形性能和电池使用率,从而瞄准更多平台 字母平铺绘图在2D画布上的工作方式是,每个字母平铺都会为自己创建一个位图。我想: 从背景位图创建新的可变位图 在新位图上绘制字母 应用其他特定于瓷砖的效果 为每个帧绘制新位图 使用libgdx实现我想要的目标的最佳方式是什么 我是否应该采取类似的做法?如果是,怎么做?我尝试使用pixmaps,但无法确定如何绘制字体 我是否应该从a-Z创建一个包含所有所需瓷砖的sprites
// load the background into a pixmap
Pixmap tile = new Pixmap(Gdx.files.getFileHandle(
"someFile.png", FileType.Internal));
// load the font
FileHandle handle = Gdx.files.getFileHandle("someFont.fnt",
FileType.Internal);
BitmapFont font = new BitmapFont(handle);
// get the glypth info
BitmapFontData data = font.getData();
Pixmap fontPixmap = new Pixmap(Gdx.files.internal(data.imagePaths[0]));
Glyph glyph = data.getGlyph(getLetterToDraw().charAt(0));
// draw the character onto our base pixmap
tile.drawPixmap(fontPixmap, (TILE_WIDTH - glyph.width) / 2, (TILE_HEIGHT - glyph.height) / 2,
glyph.srcX, glyph.srcY, glyph.width, glyph.height);
// save this as a new texture
texture = new Texture(tile);
Quote:您可以创建一个
BitmapFontData
实例,并使用BitmapFontData.getImagePath()
加载包含字形的Pixmap
。然后,您可以使用BitmapFontData.getGlyph
获取特定glyph在Pixmap
中的位置,您可以将其与Pixmap.drawPixmap()
一起使用以执行您想要执行的操作。资料来源:
您可以获取到BitmapFontData
的路径,并使用路径的文件句柄创建一个新的Pixmap,如下所示:
Pixmap(文件句柄文件)
从给定文件创建新的Pixmap实例
资料来源:
使用Gdx.files.internal(pathfromBitmapFontData)
作为文件句柄,您将获得包含所有GLYP的pixmap
Pixmap p=new Pixmap(Gdx.files.internal(myBitmapFontData.getImagePath())
尝试一下,如果它是一个内部的!我可能不是内部文件我不知道
Pixmap p=new Pixmap(myFont.getData().getFontFile())代码>
这也应该起作用我的问题是如何将位图字体绘制到pixmap上。有什么想法吗?i、 如何从位图字体中获取pixmap?我也发现了这一点,如果您能解释我如何“使用BitmapFontData.getImagePath加载包含字形的pixmap”,那么这就是进度。我目前正在使用libgdx默认字体进行测试。我将尝试创建位图字体,看看是否可以使用它。您可以使用默认设置通过getData()
执行此操作,它返回BitmapFontData
。您甚至可以获得pixmap文件的文件句柄<代码>字体.getData().getFontFile()代码>谢谢你的帮助。我无法使用默认的位图字体。不过,我最终还是用我创建的一个来实现它。我将用最终代码更新我的问题。