surface_copy_part

此函数只是从一个表面获取图像,并将其复制到另一个表面上该表面内指定的本地位置 (其中 (0, 0) 位置是目标表面的左上角)。您可以指定要复制的局部 x 和 y 位置以及该部分的宽度和高度。请注意,这些坐标基于 表面尺寸 ,而不是基于房间中绘制表面的位置。如果目标表面已有信息,该信息将被副本覆盖,并且该函数 不会 以任何方式更改源表面。

注意 在处理表面时,由于表面存储在纹理内存中,因此它们可能随时不再存在。在直接引用表面之前,您应该 始终 使用 surface_exists 检查表面是否存在。

 

语法:

surface_copy_part(destination, x, y, source, xs, ys, ws, hs);

参数类型描述
destinationSurface将另一个表面复制到的表面。
xReal要复制到的x位置。
yReal要复制到的y位置。
sourceSurface要复制的表面。
xsReal要从中复制的源表面中的x位置。
ysReal要从中复制的源表面中的y位置。
wsReal源表面中要从中复制的区域的宽度。
hsReal源表面中要从中复制的区域的高度。

 

返回:

N/A

 

例子:

if (view_current == 0)
{
    surface_copy_part(surf, 0, 0, temp_surf, 0, 0, view_xview[1] - mouse_x, view_yview[1] - mouse_y);
}
else
{
    draw_surface(surf, 0, 0);
}

上面的代码检查当前正在绘制的视图。如果是 view[0],它将把变量 temp_surf 中索引的表面复制到变量 surf 中索引的表面上。复制的区域对应于由鼠标在表面内的相对位置形成的矩形,就像在视图 [1] 中绘制的那样。如果当前视图不是 view[0],则表面 surf 会绘制到屏幕上。