draw_vertex_texture

该函数定义图元的纹理顶点的位置。图元的最终外观将取决于选择绘制的图元类型 (有关详细信息,请参阅 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)

参数类型描述
xReal顶点的x坐标。
yReal顶点的y坐标。
xtexReal纹理宽度的分数。 0 对应于纹理页面上精灵的左侧。 1 对应于纹理页面上精灵的右侧。
ytexReal纹理高度的分数。 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 变量中保存的纹理进行纹理化,并且整个纹理将用于覆盖已完成的图元。