(GM8)关于视野和表面提问
gamemaker吧
全部回复
仅看楼主
level 4
twoFly💤 楼主
GM8的问题
①深度为100obj0是一个蓝色的矩形,
②深度为50的obj1是一个橙色的矩形,
③在深度为70的obj2里新建并绘制一个透明的表面,
④当我改变视野的时候蓝色矩形相对屏幕的位置会移动,而橙色的不会...
概括一下:在视野坐标改变时,为什么深度比表面小的图像不会移动(停留在原位置)?该如何解决这种问题?[泪]
2020年01月25日 14点01分 1
吧务
level 13
推测view是基于类似surface的方式来实现的,而surface_reset_target会连view的输出坐标一起重置掉。
建议“向表面绘制内容”的代码放到其他事件里去(反正别放在draw事件里),“把表面的东西绘制到屏幕”那部分留在draw。至于“创建表面”那种东西应该只运行一次的放到create事件以及每次使用表面前“检测到表面丢失”的判断里。当然了,有能力使用表面的话,直接用表面来取代view也可以。毕竟大量静态物体用表面可以选择只draw一次,多视角的游戏里draw事件执行多次,这些都会带来显著的性能差异。
2020年01月26日 07点01分 2
!试验了一下应该是reset的问题。我把向表面绘制内容的代码放到step里(因为表面要一直更新)就解决了!谢谢![哈哈]另外,我做一些动态特效的时候会用到表面,因为要使用到blend mode,需要在透明的背景上绘制。所以每步刷新表面并绘制到屏幕上会严重影响性能吗?那除了用表面之外还有其他实现方式吗?
2020年01月26日 11点01分
吧务
level 13
话说这个问题距离理想中的完整提问就差把③每个动作对应的事件标记清楚了。
2020年01月26日 07点01分 3
1