该函数定义图元的纹理顶点的位置。图元的最终外观将取决于选择绘制的图元类型 (有关详细信息,请参阅 draw_primitive_begin)、向其添加顶点的顺序以及您设置的起点的位置对于纹理。要结束并绘制图元,您必须调用 draw_primitive_end。
您还可以通过设置要采样的适当 xtex/ytex 位置 (这些坐标也称为 UV 点) 来选择仅在图元表面上绘制纹理的 部分 。该点由 0 到 1 之间的值定义,要使用的精灵图像的左上角为 (0, 0) 点,右下角为 (1, 1) 点。通过这种方式,您可以仅使用源图像资源的一部分来对图元进行纹理化。
绘制纹理图元时,纹理将与 draw_set_colour 设置的颜色混合。这意味着要绘制不进行混合的纹理,应将其设置为 c_white,如下例所示。
注意 对于要重复的纹理,其大小必须是 2 的幂,即:32x32、128x128 等。
draw_vertex_texture(x, y, xtex, ytex)
参数 | 类型 | 描述 |
---|---|---|
x | Real | 顶点的x坐标。 |
y | Real | 顶点的y坐标。 |
xtex | Real | 纹理宽度的分数。 0 对应于纹理页面上精灵的左侧。 1 对应于纹理页面上精灵的右侧。 |
ytex | Real | 纹理高度的分数。 0 对应于纹理页面上精灵的顶部。 1 对应于纹理页面上精灵的底侧。 |
N/A
draw_set_colour(c_white);
var _tex = sprite_get_texture(spr_Background, 0);
draw_primitive_begin_texture(pr_trianglestrip, _tex);
draw_vertex_texture(0, 0, 0, 0);
draw_vertex_texture(640, 0, 1, 0);
draw_vertex_texture(0, 480, 0, 1);
draw_vertex_texture(640, 480, 1, 1);
draw_primitive_end();
上面的代码将绘制一个 4 顶点三角形条 (形成一个矩形),并使用 _tex 变量中保存的纹理进行纹理化,并且整个纹理将用于覆盖已完成的图元。