代码之家  ›  专栏  ›  技术社区  ›  loxxy

游戏背景的生成方法

  •  0
  • loxxy  · 技术社区  · 14 年前

    创建单个背景并缩放它?
    或 通过加载对象动态显示(可能经常重复)。

    另外,如果选择后者,我会发现它太过处理器密集……我的帧速率几乎变成了一半,同时试图在屏幕上管理这么多对象。

    1 回复  |  直到 14 年前
        1
  •  0
  •   dash-tom-bang    14 年前

    http://gamedev.stackexchange.com !

    1. 整个背景不需要存储在内存中
    2. 这样复制的背景片段就不需要在内存中复制了,而且
    3. 这样就可以更局部地绘制单个工件(以提高缓存效率)。

    例如,在《超级马里奥兄弟》(Super Mario Brothers)中,大量屏幕房地产被“天空”覆盖。他们只是有一个天空瓷砖,可能是16x16,可能是128x128,可能是完全其他的东西(但通常是两个的幂,所以数学很简单,所有瓷砖都是相同的大小)都是蓝色的。在我看来,他们的瓦片大小很可能是你可以击中并摧毁的一个“块”的大小。

    不管怎样,“级别数据”应该是一个数组,它包含网格中某个空间中的平铺内容,可能在内存中也作为访问位置的列来定向。当你要画画的时候,你从左上角开始,然后往下走,然后越过一列再往下走。。。

    至于“动态加载”,这是可以做到的,但你必须确保你异步加载(这样游戏就不会暂停),并确保你所需要的数据是可用的,而不是你真正需要它。