surface_get_texture

此函数返回表面纹理页的纹理。该值随后可用于其他绘图函数,特别是一般 3D 和一些 2D 基元函数。

该函数返回表面使用的纹理的 ID,而不是像 sprite_get_texture 那样指向它的指针。GameMaker 的绘图函数以相同的方式接受两者。

注意使用表面时,由于表面存储在纹理内存中,因此表面可能随时停止存在。在直接引用表面之前,应该始终使用surface_exists()检查表面是否存在。

提示 表面的显示方式取决于其内容,尤其是表面内部的 alpha 值。Alpha 值为 0 的表面 cleared 可能与 Alpha 值为 1 的曲面不同,这是因为它们与背景混合的方式不同。当您注意到自定义图面上的渲染方式与 application_surface 上的渲染方式不同时,请注意这一点。

注意在HTML5上,这将返回结构而不是纹理指针,因为指针不能在该平台上使用。但是,这不会更改返回值的使用,因为其在纹理函数中的用法仍然保持不变。

 

语法:

surface_get_texture(surface_id);

参数类型描述
surface_idTexture要获取纹理的表面。

 

返回:

Texture or -1 if the surface doesn't exist

 

例子:

var _tex;
_tex = surface_get_texture(surf);
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变量中,该变量本身取自以前创建的表面 surf