该函数将函数 draw_surface_ext 与函数 draw_surface_part 结合起来,添加了一些额外的混合选项,以便最终曲面部分的每个角都可以与单独的颜色混合。
注意 除非启用了 WebGL,否则渐变混合不适用于 HTML5 目标。
注意使用表面时,由于表面存储在纹理内存中,因此表面可能随时停止存在。在直接引用表面之前,应该始终使用surface_exists()检查表面是否存在。
提示表面的显示方式取决于其内容,尤其是表面内部的Alpha值。Alpha为0的清除表面可能与Alpha为1的清除表面不同,因为它们与背景混合的方式不同。只要您注意到自定义表面上的渲染方式与application_surface的渲染方式有所不同,就要注意这一点。
draw_surface_general(surface, left, top, w, h, x, y, xscale, yscale, rot, c1, c2, c3, c4, alpha);
参数 | 类型 | 描述 |
---|---|---|
surface | Surface | 要绘制的表面。 |
left | Real | 要绘制的零件表面中的左侧位置。 |
top | Real | 要绘制的零件表面中的顶部位置。 |
w | Real | 要绘制的零件的左侧宽度。 |
h | Real | 要绘制的零件从顶部开始的高度。 |
x | Real | 绘制表面的x位置。 |
y | Real | 绘制表面的y位置。 |
xscale | Real | 用于绘制表面的水平缩放。 |
yscale | Real | 用于绘制表面的垂直缩放。 |
rot | Real | 用于绘制表面的旋转或角度。 |
c1 | Colour | 表面左上角的颜色。 |
c2 | Colour | 表面右上角的颜色。 |
c3 | Colour | 表面右下角的颜色。 |
c4 | Colour | 表面左下角的颜色。 |
alpha | Real | 用于绘制表面的 Alpha 透明度。 |
N/A
draw_surface_general(surf, 8, 8, 32, 32, x, y, 2, 0.5, 180, c_white, c_white, c_black, c_black, 1);
这会将8 x 8像素的32 x 32像素区域绘制到表面中。它将被拉伸到通常宽度的两倍,但通常高度的一半。它将是不透明的,而且颠倒。表面的顶部区域将混合为白色,因此为法线,但底部区域将为黑色,这意味着表面将以平滑的梯度从法线向下移动到侧面影像。