Opengl 两块瓷砖之间的扩散
我要用libgdx做我的第一件事。这是一个平铺2D游戏。假设我有两种瓷砖:蓝色和绿色。这些是32x32像素的图像,覆盖游戏场上的一个单元格。我想能够创建一个瓷砖之间的过渡,如一个在右边的图像附加。蓝色和绿色并不意味着平铺中的所有像素都是相同的颜色,这只是定义了像素的纹理 我不是在问算法——我已经用JavaScript通过画布完成了。我只需要一些关于在libgdx中具体使用哪些类/技术/解决方案的说明 所以我需要从蓝色纹理中提取像素,然后在绿色纹理上绘制它们。有没有一种方法可以通过着色器或者直接从蓝色瓷砖的纹理中获取像素值来实现这一点 假设我已经将所有纹理(尚未计算过渡精灵)加载到Opengl 两块瓷砖之间的扩散,opengl,libgdx,Opengl,Libgdx,我要用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();
batch.begin();
对于(int x=0;x
在getFloorSpriteByCell()
中,我在一些预加载的精灵之间进行选择,仅此而已,在一个奇特的gui中没有奇特的级别编辑
我不使用tilemaps,我只需要在渲染过程中在另一个纹理上绘制纹理的某些部分。Welp,我完成了它,下面是它的外观: 无扩散: 带有扩散: 我想,代码本身太大了,而且是特定于项目的,所以无法在这里发布。以下是步骤(LibGDX中的实际类以粗体开头,以大写字母开头):