8个方向的背景无限滚动

经常会用到背景的无限滚动,比如飞机大战啊, 赛车啊, 瀑布呀 之类的。那它是如何实现的呢?

如图的背景滚动:

一、原理

实现背景的无限滚动原理很简单,就是用两张一样的图片在屏幕上循环滚动。两张图片同时一起滚动,当第一张图片位移到屏幕外,就将它接在第二张图片的末尾,继续滚动。第二张图片滚动到屏幕之外,就将他设置到第一张图片的末尾,继续滚动。这样两张图片循环滚动,就形成了背景的无限滚动。

二、实现

楼楼对八个方向(左,上, 右, 下,左上角, 右上角, 左下角, 右下角)的滚动进行了一个封装。
很关键的一点就是根据背景滚动的方向,给这两张图片设置不同的anchor锚点,使之便于计算。
好了话不多说,详见源码: source.zip (4 KB)

可以直接拿来使用,用法也十分简单,直接实例化该对象,传入用于背景的两个Sprite*, 再根据你想要的背景的滚动方向进行相应的调用就OK

1赞