我正在开发一个手机文字游戏。昨天,我决定使用libgdx切换到OpenGL,以尝试改善图形性能和电池使用情况,并且能够更多地覆盖平台。
在2D画布上绘制字母瓷砖的方式是每个字母瓷砖为自己创建一个位图。我会:
在2D画布上绘制字母瓷砖的方式是每个字母瓷砖为自己创建一个位图。我会:
- 从背景位图中创建一个新的可变位图。
- 在新位图上绘制字母。
- 应用其他特定于瓷砖的效果。
- 为每一帧绘制新位图
- 我应该采用类似的方法吗?如果是这样,怎么做?我尝试使用pixmaps,但不知道如何绘制字体。
- 我应该创建一个包含从A到Z所需所有瓷砖的精灵表,并只使用它吗?当我调整瓷砖背景的设计时,这有点乏味。
- 我应该做一些完全不同的事情吗?
// 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);
getData()
方法来获取BitmapFontData
。你甚至可以获得 pixmap 文件的 Filehandle!font.getData().getFontFile();
- bemeyer