surface_copy_part


语法:

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

参数 描述
destination 从其它表面复制到的目的表面层的ID。
x 目的表面层指定的x坐标,从源表面层复制到这个位置。
y 目的表面层指定的y坐标,从源表面层复制到这个位置。
source 被复制的表面层的ID。
xs 源表面层内,复制区域的x坐标。
ys 源表面层内,复制区域的y坐标。
ws 源表面层内,复制区域的宽度。
hs 源表面层内,复制区域的高度。


返回:

N/A(无返回值)


描述

这个函数简单的让图像从一个表面层复制到另外一个表面特殊的位置((0,0)表示在表面层的左上角)。你可以指定源表面复制区域的局部x和y坐标,以及选区的宽度和高度。请注意,这些坐标是基于表面层大小的一个位置,而不是表面层在房间内绘制的位置 (查看 表面层 目录页获取详细信息)。If the destination surface already has information this will be overwritten by the copy, and the function does not change the source surface in any way.

注:由于储存在显存里,表面层运行时存在随时停止并退出的可能性。在直接引用它们之前,你需要 一直使用 surface_exists检测表面层是否退出。更多信息请查阅 表面层


例如:

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"的表面。The area copied corresponds to a rectangle formed by the relative position of the mouse within the surface as it would be drawn in view[1]. 如果当前视野不是view[0],则绘制 "surf"这个表面到屏幕上。