surface_create_ext

此功能允许您将表面附加到网页中已存在的画布元素,这意味着您可以有效地将游戏的各个部分拆分为在页面内的各个不同位置绘制。

为此,您 必须 在游戏的 *.html 页面中使用与您希望创建的表面相对应的正确尺寸和名称正确定义画布元素。因此,您将拥有 " 主 " 画布,然后是辅助表面画布元素,这些元素将使用此函数分配给正确的表面。下图是如何设置具有三个画布元素的页面的示例:

Multi canvas layour example页面布局可能很复杂,尤其是如果您希望所有元素都正确排列,但创建布局的硬任务完成后,您可以使用游戏选项HTML5选项卡将此html文件添加为游戏的默认页面文件。接下来您应该做的是设置房间和视图,因为每个表面都需要与特定视图关联,以便"捕捉"游戏图像(请参阅视图变量view_surface_id[ 0...7 ])。下面的图像显示了如何设置上面画布示例的游戏房间:

Multi canvas layour example 最后,您将使用此函数创建表面,其名称与画布元素所用的名称相同,尺寸则与同一画布的尺寸相对应。该函数将返回对表面的引用,该引用应存储在变量中以供将来的函数调用。首次创建表面时,它可能包含 " 噪声",因为基本上它只是为此目的而保留的内存区域 (并且该内存可能仍然包含信息),因此您可能需要在使用之前清除表面类似 draw_clear_alpha 的函数。

此函数将始终使用 surface_rgba8unorm 格式创建表面 。

注意 此函数仅适用于HTML5模块。

 

语法:

surface_create_ext(name, w, h);

参数类型描述
nameString要将表面链接到的画布元素的名称。
wReal要创建的表面的宽度。
hReal要创建的表面的高度。

 

返回:

Surface (or -1 if anything went wrong)

 

例子:

s1 = surface_create_ext("surface1", 192, 550);
s2 = surface_create_ext("surface2", 608, 186);
view_surface_id[1] = s1;
view_surface_id[2] = s2;

上面的代码创建了两个不同大小的表面,将每个表面分配给不同的画布元素,并将这些表面分配给两个视图,以便捕获房间的正确部分。