Thank you Brent for clarifying the problem in my code.
Yes I just want to move an image in the background across the x-axis smoothly. Here is an example that has been provided by Corona:
require "sprite"
display.setStatusBar(display.HiddenStatusBar)
local background = display.newImage("background.png")
background:setReferencePoint(display.TopLeftReferencePoint)
local moon = display.newImage("moon.png", 22, 19)
local mountain\_big = display.newImage("mountain\_big.png", 132-240, 92)
local mountain\_big2 = display.newImage("mountain\_big.png", 132-720, 92)
local mountain\_sma = display.newImage("mountain\_small.png", 84, 111)
local mountain\_sma2 = display.newImage("mountain\_small.png", 84 - 480, 111)
local tree\_s = display.newImage("tree\_s.png", 129-30, 151)
local tree\_s2 = display.newImage("tree\_s.png", 270 + 10,151)
local tree\_l = display.newImage("tree\_l.png", 145, 131)
local tree\_s3 = display.newImage("tree\_s.png", 129-30 - 320, 151)
local tree\_s4 = display.newImage("tree\_s.png", 270 + 10 - 320,151)
local tree\_l2 = display.newImage("tree\_l.png", 145 - 320, 131)
local tree\_s5 = display.newImage("tree\_s.png", 129 - 30 - 640, 151)
local tree\_s6 = display.newImage("tree\_s.png", 270 + 10 - 640,151)
local tree\_l3 = display.newImage("tree\_l.png", 145 - 640, 131)
local fog = display.newImage("Fog.png", 0, 214)
local fog2 = display.newImage("Fog.png",-480,214)
background.x = 0
background.y = 0
local uma = sprite.newSpriteSheetFromData( "uma.png", require("uma").getSpriteSheetData() )
local spriteSet = sprite.newSpriteSet(uma,1,8)
sprite.add(spriteSet,"uma",1,8,1000,0)
local spriteInstance = sprite.newSprite(spriteSet)
spriteInstance:setReferencePoint(display.BottomRightReferencePoint)
spriteInstance.x = 480
spriteInstance.y = 320
local tree\_l\_sugi = display.newImage("tree\_l\_sugi.png", 23, 0)
local tree\_l\_take = display.newImage("tree\_l\_take.png", 151, 0)
local rakkan = display.newImage("rakkan.png", 19, 217)
local rakkann = display.newImage("rakkann.png", 450, 11)
local wallOutSide = display.newRect(480,0,200,320)
wallOutSide:setFillColor(0,0,0)
local wallOutSide2 = display.newRect(-200,0,200,320)
wallOutSide2:setFillColor(0,0,0)
local tPrevious = system.getTimer()
local function move(event)
local tDelta = event.time - tPrevious
tPrevious = event.time
local xOffset = ( 0.2 \* tDelta )
moon.x = moon.x + xOffset\*0.05
fog.x = fog.x + xOffset
fog2.x = fog2.x + xOffset
mountain\_big.x = mountain\_big.x + xOffset\*0.5
mountain\_big2.x = mountain\_big2.x + xOffset\*0.5
mountain\_sma.x = mountain\_sma.x + xOffset\*0.5
mountain\_sma2.x = mountain\_sma2.x + xOffset\*0.5
tree\_s.x = tree\_s.x + xOffset
tree\_s2.x = tree\_s2.x + xOffset
tree\_l.x = tree\_l.x + xOffset
tree\_s3.x = tree\_s3.x + xOffset
tree\_s4.x = tree\_s4.x + xOffset
tree\_l2.x = tree\_l2.x + xOffset
tree\_s5.x = tree\_s5.x + xOffset
tree\_s6.x = tree\_s6.x + xOffset
tree\_l3.x = tree\_l3.x + xOffset
tree\_l\_sugi.x = tree\_l\_sugi.x + xOffset \* 1.5
tree\_l\_take.x = tree\_l\_take.x + xOffset \* 1.5
if moon.x \> 480 + moon.width / 2 then
moon:translate ( -480\*2 , 0)
end
if fog.x \> 480 + fog.width / 2 then
fog:translate( -480 \* 2, 0)
end
if fog2.x \> 480 + fog2.width / 2 then
fog2:translate( -480 \* 2, 0)
end
if mountain\_big.x \> 480 + mountain\_big.width / 2 then
mountain\_big:translate(-480\*2 , 0)
end
if mountain\_big2.x \> 480 + mountain\_big2.width / 2 then
mountain\_big2:translate(-480\*2 , 0)
end
if mountain\_sma.x \> 480 + mountain\_sma.width / 2 then
mountain\_sma:translate(-480\*2,0)
end
if mountain\_sma2.x \> 480 + mountain\_sma2.width / 2 then
mountain\_sma2:translate(-480\*2,0)
end
if tree\_s.x \> 480 + tree\_s.width / 2 then
tree\_s:translate(-480\*2 , 0)
end
if tree\_s2.x \> 480 + tree\_s2.width / 2 then
tree\_s2:translate(-480\*2 , 0)
end
if tree\_l.x \> 480 + tree\_l.width / 2 then
tree\_l:translate(-480\*2 , 0)
end
if tree\_s3.x \> 480 + tree\_s3.width / 2 then
tree\_s3:translate(-480\*2 , 0)
end
if tree\_s4.x \> 480 + tree\_s4.width / 2 then
tree\_s4:translate(-480\*2 , 0)
end
if tree\_l2.x \> 480 + tree\_l2.width / 2 then
tree\_l2:translate(-480\*2 , 0)
end
if tree\_s5.x \> 480 + tree\_s5.width / 2 then
tree\_s5:translate(-480\*2 , 0)
end
if tree\_s6.x \> 480 + tree\_s6.width / 2 then
tree\_s6:translate(-480\*2 , 0)
end
if tree\_l3.x \> 480 + tree\_l3.width / 2 then
tree\_l3:translate(-480\*2 , 0)
end
if tree\_l\_sugi.x \> 480 + tree\_l\_sugi.width / 2 then
tree\_l\_sugi:translate(-480\*4,0)
end
if tree\_l\_take.x \> 480 + tree\_l\_take.width / 2 then
tree\_l\_take:translate(-480\*5,0)
end
end
The code uses translate and moves several background images in several layers with different speeds. I employed the same code in my game and it works. However you can clearly see the background is not moving smoothly. If you run the above code you will see what I mean by “not moving smoothly”.
Please let me know if you have any other suggestion.
Cheers,
Arash [import]uid: 80320 topic_id: 23151 reply_id: 112052[/import]