GameMaker Studio 2 doesn't actually render most things to the screen directly, but instead it renders them to the application surface. 应用表面层本质上是一种表面层,可以随心所欲的使用表面层函数,并因此可以操作表面层函数,绘制、发送到着色器,通常表面可以做到的,应用表面层也可以。
注: 唯一你 不可以 操作的是释放应用表面层。它一直会存在,尽管访问它的索引值可能会改变。
当你运行游戏时,在进入每个新房间调用绘制事件的第一时间会创建这个表面, 这意味着在那之前什么都不会绘制。然而,你仍然可以获取应用表面层的位置并且在 创建事件或任何其它事件中 重置大小,不会出现任何错误,使用的值也会在它创建时建立关联。实际的事件序列如下所示:
- Pre-draw 事件
- --- > 应用表面层创建及渲染目标设置
- 为每个可见的视野执行一次下述序列,如果激活的视野,仅执行一次
Draw begin 事件
Draw 事件
Draw end 事件- --- > 应用表面层在此重置
- Post draw 事件(发布绘制事件)
- --- > 应用表面层现在绘制到默认的背面缓存区(虽然你可以关掉这个过程)。
- Draw GUI begin 事件
- Draw GUI 事件
- Draw GUI end 事件
使用这个表面层意味着你可以轻松地过渡到使用着色器,采集屏幕用并3D模式环绕,或者简单的缩放低分辨率的游戏到任意分辨率的屏幕上。它有无限种可能性!
若要访问这个表面层,你需要用到内置变量application_surface,接下来的章节会进行解释:
你也有只为应用表面专门设计的函数可以使用: