我正在用 libgdx 做我的第一件事。那是一个平铺的 2D 游戏。假设我有两种类型的瓷砖:蓝色和绿色。这些是覆盖游戏场上一个单元格的 32x32 像素图像。我希望能够在瓷砖之间创建过渡,例如所附图像右侧的过渡。蓝色和绿色并不意味着平铺中的所有像素都是相同的颜色,它只是定义了一个像素来自什么纹理。
我不是在问算法——我已经通过 JavaScript 中的画布完成了它。我只需要一些关于在 libgdx 中专门使用哪些类/技术/解决方案的说明。
所以我需要从蓝色纹理中提取像素并将它们绘制在绿色纹理之上。有没有办法使用着色器或直接从蓝色瓷砖的纹理中获取像素值?
假设我已经将所有纹理(尚未计算过渡精灵)加载到TextureAtlas
. 接下来应该上哪些课程才能获得预期的效果?
更新:这是我当前代码的粗略示例。我的 gameScreen.render() 方法看起来就像这样:
batch.begin();
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
Sprite sprite = getFloorSpriteByCell(cells[x][y]);
batch.draw(sprite, x * 32, y * 32);
}
}
batch.end();
getFloorSpriteByCell()
我在一些预加载的精灵之间进行选择,仅此而已,没有花哨的 gui 中的花哨的关卡编辑。
我不使用瓷砖贴图,我只需要在渲染过程中在另一个纹理上方绘制纹理的一部分。