美文网首页
游编(4)—View与SurfaceView视图绘制框架对比

游编(4)—View与SurfaceView视图绘制框架对比

作者: 奔跑的佩恩 | 来源:发表于2020-08-25 11:49 被阅读0次

    前言

    在之前的文章,我们已经了解了View游戏视框架SurfaceView游戏视图框架,它们都可以为游戏的开发带来很好的视图展示效果。感兴趣的可参考以下文章
    游编(1)—View游戏框架
    游编(2)—SurfaceView游戏框架<上>
    游编(3)—SurfaceView游戏框架<下>
    那么当我们开发的时候,如何选择哪个框架作为展示的控件呢?下面就来学习下吧

    今天涉及知识点:

    1. View框架优劣
    2. SurfaceView框架优劣
    3. 两个框架使用场景

    一. View框架优劣

    通过之前的学习,我们可以知道View框架是通过主动触发游戏逻辑来驱动游戏后续动作的,如点击,触摸等驱动界面重绘。当然,它还涉及到两个重要方法:

    • invalidate() 只能在主线程中执行,驱动界面重绘
    • postInvalidate() 可以在子线程中循环调用,驱动界面重绘

    画面一般有主UI来更新,这回导致一个问题,一旦主界面ui更新绘制时间过长,就会导致界面卡死,触屏键,返回键等失效。
    而且View游戏框架没有双缓冲机制。这就是View框架的劣势。

    二.SurfaceView框架优劣

    SurfaceView拥有双缓冲机制,其继承自View,却通常是自定义一个类似draw的方法,而不是使用ViewonDraw()方法来绘制视图。SurfaceView的视图重绘通常是利用单独的线程去更新,所以不会出现类似 界面卡死,触屏键,返回键失灵的情况。
    还有一个重要区别View是主动驱动界面绘制,而SurfaceView是被动驱动绘制,所以SurfaceView要不断更新画布,对手机的开销很大。

    三. 两个框架使用场景

    讲了这么多,由于SurfaceView继承自View,一般情况下,更适合于做游戏的开发,单这并不表示任何情况下SurfaceView框架都比View框架好.在实际开发中,一般是根据游戏类型来确定使用哪个游戏视图框架。

    • 比如棋牌游戏,界面需要更新的时候,一般是由于用户的按键或触屏操作,这时使用View作为视图展示框架就很好。
    • 而 RPG(Role-playing Game,即 角色扮演游戏),射击等游戏,由于其界面有很多需要移动的背景,自动走动的人物,流水等不需与人交互而又动态变化的元素,则使用SurfaceView框架更好

    由于当前市场游戏泛滥,为了满足广大用户的游戏需求,各种类型的游戏层出不穷。所以大多数时候,我们都用SurfaceView进行游戏视图的开发,因为SurfaceView可以开发更多的游戏类型。

    ok, 今天的内容就介绍到这里了,谢谢大家。

    相关文章

      网友评论

          本文标题:游编(4)—View与SurfaceView视图绘制框架对比

          本文链接:https://www.haomeiwen.com/subject/yyhldktx.html