【发布时间】:2010-12-11 05:04:21
【问题描述】:
我正在尝试在使用 OpenTK 库的 C#/OpenGl 编写的游戏程序中使用纹理图集。
我在 OpenGL 中将纹理图集加载为纹理(尺寸为 256x256),每个图块为 32x32。
为了显示地图集的第一个图块,我使用了以下代码:
GL.Begin(BeginMode.Quads);
GL.TexCoord2(0, 0); GL.Vertex2(0, 0);
GL.TexCoord2(0.125f, 0); GL.Vertex2((32 * zoom), 0);
GL.TexCoord2(0.125f, 0.125f); GL.Vertex2((32 * zoom), (32 * zoom));
GL.TexCoord2(0, 0.125f); GL.Vertex2(0, (32 * zoom));
GL.End();
0.125 是通过除以 1/8 计算得出的,8 是行/列中的瓦片数。
我不知道如何以这种方式计算第二个图块的坐标! 我尝试分别使用 0.125 和 0.25 代替 0 和 0.125,但这没有任何效果。我猜您不允许对(EDIT)前(0)个纹理坐标使用大于零的值?
如果有人可以提供帮助或提供更好的方法,将不胜感激!
【问题讨论】:
-
请在您的帖子中don't use signatures or taglines。