使用coronasdk实现背景无限

使用coronasdk实现背景无限,sdk,lua,coronasdk,Sdk,Lua,Coronasdk,我试图在无限背景中滚动背景 我使用了两张重复854x176的图片 我尝试了这个功能: function mov(self, event) if self.x < -854 then self.x = 854 else self.x = self.x - self.speed end end 它的工作很好,但问题是重复之间出现了一个小的空白。 有更好的方法吗?一种方法是利用Graphics 2.0引擎的重复填充功能 以下是步骤: 为x设置默认纹理环

我试图在无限背景中滚动背景 我使用了两张重复854x176的图片

我尝试了这个功能:

 function mov(self, event)
   if self.x < -854 then
     self.x = 854
   else
     self.x = self.x - self.speed
   end
 end
它的工作很好,但问题是重复之间出现了一个小的空白。
有更好的方法吗?

一种方法是利用Graphics 2.0引擎的重复填充功能

以下是步骤:

为x设置默认纹理环绕模式,也可以为y设置默认纹理环绕模式:

display.setDefault("textureWrapX", "mirroredRepeat")
包装的模式有:

clampToEdge-默认夹紧填充不会重复 重复-重复填充,就像并排放置相同的瓷砖一样 mirroredRepeat-填充以镜像模式重复,每个瓷砖都是相邻瓷砖的镜像 创建一个你想要的背景大小的矩形,例如全屏

local background = display.newRect(display.contentCenterX, display.contentCenterY, 320, 480)
用背景图像填充显示对象

background.fill = {type = "image", filename = "background.jpg"}
使用适合您应用程序的任何方法制作动画。以下只是一种方式:

local function animateBackground()
    transition.to(background.fill, {time=5000, x=1, delta=true, onComplete=animateBackground})
end

animateBackground()
在这里,您只需在background.fill对象的x属性上运行transition,delta=true表示我们使用的是x值的更改,而不是最终的结束值

使用时间、x的值进行播放,将delta设置为false,使用环绕模式进行播放,以查看它对动画的影响。你甚至可能会意外地发现一些很酷的效果,你可能想在以后使用

布伦特·索伦蒂诺(Brent Sorrentino)检查,他详细介绍了填充物。此外,请参见Graphics Premium/PatternFill下CoronaSDK中的示例代码

完整代码:


一种方法是利用Graphics 2.0引擎名为重复填充的功能

以下是步骤:

为x设置默认纹理环绕模式,也可以为y设置默认纹理环绕模式:

display.setDefault("textureWrapX", "mirroredRepeat")
包装的模式有:

clampToEdge-默认夹紧填充不会重复 重复-重复填充,就像并排放置相同的瓷砖一样 mirroredRepeat-填充以镜像模式重复,每个瓷砖都是相邻瓷砖的镜像 创建一个你想要的背景大小的矩形,例如全屏

local background = display.newRect(display.contentCenterX, display.contentCenterY, 320, 480)
用背景图像填充显示对象

background.fill = {type = "image", filename = "background.jpg"}
使用适合您应用程序的任何方法制作动画。以下只是一种方式:

local function animateBackground()
    transition.to(background.fill, {time=5000, x=1, delta=true, onComplete=animateBackground})
end

animateBackground()
在这里,您只需在background.fill对象的x属性上运行transition,delta=true表示我们使用的是x值的更改,而不是最终的结束值

使用时间、x的值进行播放,将delta设置为false,使用环绕模式进行播放,以查看它对动画的影响。你甚至可能会意外地发现一些很酷的效果,你可能想在以后使用

布伦特·索伦蒂诺(Brent Sorrentino)检查,他详细介绍了填充物。此外,请参见Graphics Premium/PatternFill下CoronaSDK中的示例代码

完整代码: