Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android棋盘游戏:多视图还是一个大视图?_Android_2d_2d Games - Fatal编程技术网

Android棋盘游戏:多视图还是一个大视图?

Android棋盘游戏:多视图还是一个大视图?,android,2d,2d-games,Android,2d,2d Games,我正在尝试制作一个基于2D回合的android游戏,它有一个网格状的棋盘。我想出了两种不同的方法来渲染电路板: 一个大的自定义视图,用于计算所有内容并渲染所有分幅。任何一个平铺上的任何动画都需要重新绘制整个视图;因此,该视图将一直重新绘制自身 一个大的自定义视图组,包含许多较小的自定义视图s,每个视图表示一个磁贴。只有具有动画效果的瓷砖才需要重新绘制。视图组负责确保每个视图都位于屏幕上的正确位置 资源密集度较低的方法是什么?还是有更好的方法我没想到 可能需要考虑的其他因素: 除了网格瓷砖外,还

我正在尝试制作一个基于2D回合的android游戏,它有一个网格状的棋盘。我想出了两种不同的方法来渲染电路板:

  • 一个大的自定义
    视图
    ,用于计算所有内容并渲染所有分幅。任何一个平铺上的任何动画都需要重新绘制整个视图;因此,该视图将一直重新绘制自身

  • 一个大的自定义
    视图组
    ,包含许多较小的自定义
    视图
    s,每个
    视图
    表示一个磁贴。只有具有动画效果的瓷砖才需要重新绘制。
    视图组
    负责确保每个
    视图
    都位于屏幕上的正确位置

  • 资源密集度较低的方法是什么?还是有更好的方法我没想到

    可能需要考虑的其他因素:

    • 除了网格瓷砖外,还会有精灵在瓷砖之间移动和设置动画。瓷砖本身不会平移

    • 棋盘上的瓷砖数量因游戏而异,但棋盘始终为矩形

    • 电路板通常太大,以至于一个典型的屏幕无法容纳所有的瓷砖;因此,用户应该能够在黑板上平移和缩放


    查看大型定制
    视图

    如果您所担心的是绘图过程中效率较低,那么您可以使用
    invalidate(Rect)
    et simila使一些小脏区域无效。这将仅重新绘制
    视图的一小部分
    。一个大的自定义
    视图
    也将简化动画和其他跨越平铺边界的绘图

    要实现收缩缩放功能,请查看


    为什么不使用像?

    这样的游戏引擎呢?它实际上取决于您计划制作的游戏。如果你做了一些很好的更新,创建很多独立的视图听起来可能会变得很混乱。如果在视图之间发生了什么情况呢?请记住,在API 14+中,默认情况下启用了硬件加速。基本上,你仍然可以免费获得OpenGL的速度,使用android引擎使用画布绝对是从头开始编写的好选择。