draw的工作流程很特殊,在gm中,有一幅内置的画布会保存即将发生的绘制工作,我们所有的绘制任务都在这块画布上进行例如 draw_text(),draw_sprite()等这块画布不在屏幕上显示,只有在每步结束前,draw事件进行时,才会被绘制到屏幕上。这也是我们实际看到的东西,就像surface一样,你可以在surface上进行绘制工作,但只有将surface绘制到屏幕上才能被看见Gm中有两个关键函数screen_redraw() 调用绘图事件重绘房间。screen_refresh() 使用当前房间图像刷新显示(而不是使用绘图事件)。F1帮助文档中的解释是:第一个 redraw 函数重绘了内置画布,然后刷新屏幕图像。第二个函数 refresh 只是刷新了一次屏幕图像我们在其他的事件中进行绘制时并不会显示,是因为将东西都画到了内置的画布上,而我们在绘制到内置画布上后,并没有调用第一个函数刷新屏幕,等到每一步的最后,也就是绘制事件发生时,游戏执行了第二个函数,将内置画布重绘而gm在进行绘制时是按深度从大到小绘制贴图和精灵,绘制事件发生时,深度最大的是背景,所以首先会在内置画布上绘制出
默认分类·游戏开发笔记
· 2015-05-10
· 1196 人浏览
dream