之前咱好像说过用view会比较耗费运算量……如果不在乎这些又想省事的话,有个办法是多开一个view用来显示UI,这样坐标就变成固定的了。
view0用来显示场景,view坐标随着“看到”的范围进行移动,port始终投射到屏幕上;
view1用来显示UI,不管是在屏幕某一侧的固定UI还是“浮在上面”的都可以,view坐标可以是固定的,远离游戏场景的地方(比如-10000,0什么的),port根据设计,放在屏幕一侧或者和view0重合;
此时各种UI内容只要也放到-10000,0那边就可以实现功能了。但要注意,每多开一个view,所有实例在每轮步循环里就会多发生一次draw事件。从防止卡顿、后续其他扩展的角度来说,咱其实更推荐surface。
如果是用surface,UI是绘制到surface上的,坐标仍然是从0,0开始算,比较省事。最后只需要考虑把这个surface draw在什么位置就好。比如2楼提到的,相对于view坐标的位置。