实现思路
1.根据方向初始化图片的位置,每张图片按顺序位置紧紧相邻;
2.使用定时器根据速度一直更新图片的位置,使图片整体向指定方向移动;
3.当图片超出边界时,设置当前图片的位置紧跟最后一张图片后面;
实现代码
LoopLayer = class("LoopLayer",function ()
return cc.Sprite:create()
end)
--方向常量
--上
LoopLayer.DIRECTION_TOP = cc.p(0,1)
--下
LoopLayer.DIRECTION_BOTTOM = cc.p(0,-1)
--左
LoopLayer.DIRECTION_LEFT = cc.p(-1,0)
--右
LoopLayer.DIRECTION_RIGHT = cc.p(1,0)
--参数说明
--1.imgs(参与滚动的图片,至少两张)
--2.direction(滚动方向)
--3.speed(滚动速度)
function LoopLayer:create(imgs, direction,speed)
local obj = LoopLayer.new()
obj:init(imgs, direction, speed)
return obj
end
-- 偏移(用于处理黑边)
local offset = 6
-- 四个方向的边界处理函数
local boundingHandler = {
[LoopLa